Odpowiedniki plików „.msi” i „setup.exe” w Debianie lub Ubuntu?

15

Ta odpowiedź wyjaśnia .msii setup.exepliki do instalowania aplikacji w systemie Windows.

Czy istnieją odpowiedniki .msisetup.exe w Debianie lub Ubuntu i pliki? Czy .debpliki pakietów odpowiadają .msilub setup.execzy coś innego?

Tim
źródło
8
Nie wiem, dlaczego o to pytasz, więc powiem to jako ogólny komentarz dla każdego, kto spotka się z tym pytaniem. Chociaż istnieją sposoby ręcznej instalacji oprogramowania, preferowaną przez większość dystrybucji Linuksa (i zdecydowanie zalecaną) jest instalacja oprogramowania za pomocą menedżera pakietów. W ten sposób automatycznie otrzymujesz aktualizacje zabezpieczeń i przeprowadzany jest pewien poziom testów w celu zapewnienia zgodności z dystrybucją. Jeśli potrzebujesz najnowszej i najlepszej wersji oprogramowania niedostępnej w głównych repozytoriach, skorzystaj z repozytorium społeczności (np. PPA w Ubuntu), ale zawsze używaj menedżera pakietów.
Muzer,
W .setupsystemie Windows nie ma plików, masz na myśli, setup.exejaka jest typowa nazwa instalatora?
gronostaj
Zobacz stronę podręcznika apt-getman i powiązane dokumenty. Nawet w systemie Windows nie ma odpowiednika apt-get install, nie mówiąc już o żadnej innej rzeczy, którą może zrobić.
jthill
5
@jthill, to nieprawda. Nie jest tak w pełni rozwinięty ani tak popularny apt-get, ale najnowsze wersje programu Powershell (Win7 i nowsze) mają OneGetmożliwość instalacji Chocolatey(odpowiednik Homebrewna Macu). Mogą być mniej popularne niż ich odpowiedniki nix, ale powiedzieć, że nie ma odpowiednika w systemie Windows jest rażąco niepoprawne.
flith
1
@Tim: na to pytanie nie można rozsądnie odpowiedzieć bez określenia, co dokładnie rozumiesz przez „równoważny”. Jakimi konkretnymi właściwościami .msiplików i instalatorów jesteś zainteresowany? Jakie są dokładne kryteria określania, czy coś jest „równoważne”, czy nie? Na przykład: instalatory są programami jak każdy inny program. Nie ma absolutnie nic specjalnego w programie o nazwie setup.exe. Ponieważ setup.exejest tylko program jak każdy inny program, Debian z pewnością nie mają pojęcia „program”, należy wziąć pod uwagę, że odpowiednik? Jeśli nie, dlaczego nie?
Jörg W Mittag

Odpowiedzi:

28

Prawdopodobnie bliżej instalatora MSI niż a setup.exe, .debpakiet zawiera drzewo plików do skopiowania do systemu plików, a także zbiór haków przed i po instalacji do uruchomienia (między innymi). Haki mogą skutecznie robić wszystko w systemie, w tym coś, czego nigdy nie widziałem w systemie Windows: dodawanie użytkowników do usługi systemowej. Jedną rzeczą, której nie mogą zrobić, jest instalacja innej.deb pakietu - baza danych jest blokowana podczas instalacji, więc można to osiągnąć tylko poprzez zależności. Zainstalowanie .debpakietu powoduje następnie wygenerowanie wpisów w centralnej bazie danych zainstalowanych pakietów w celu ułatwienia konserwacji.

The ttf-mscorefontsPakiet jest interesująca, że sam pakiet zawiera tylko skrypt, aby pobrać i zainstalować czcionki. Ten skrypt jest wykonywany w jednym z tych haków.

Bliżej setup.exemoże być pobranie kodu źródłowego programu ze strony głównej projektu, a następnie uruchomienie./configure && make && sudo make install lub jakąkolwiek inną metodę, której autorzy postanowili użyć. Ponieważ ta metoda nie dodaje pakietu do bazy danych zainstalowanych programów, usunięcie go później może być znacznie trudniejsze.

Inna różnica polega na tym, że parametr .debokreśla jego zależności, dzięki czemu można zagwarantować prawidłową instalację. O ile mi wiadomo, w świecie Windows MSI nie może powodować instalacji innego MSI, więc setup.exezwykle jest używany do tego rodzaju śledzenia zależności. W kilku komentarzach zauważono, że MSI mogą nazywać zależności, ale ponieważ nie ma centralnej bazy danych MSI, tak jak w przypadku .debpakietów, brak zależności spowoduje jedynie niepowodzenie instalacji.

Zatem .debjest coś pomiędzy instalatorem MSI a a setup.exe. Pakiet może zrobić wszystko, co chce podczas przechwytywania przed i po instalacji, może nazwać i zwykle znaleźć własne zależności oraz pozostawia zapis instalacji w centralnej lokalizacji dla łatwości konserwacji.

Lis
źródło
2
W systemie Windows setup.exeinstalatory w stylu również integrują się ze śledzonym systemem instalatora (z deinstalatorami itp.). Zarówno w przypadku MSI, jak i .exeinstalatorów, zależności są obsługiwane przez osadzenie zależności w instalatorze ( np . Instalator redystrybucyjny VC lub instalator DirectX) oraz przez zainstalowanie bibliotek DLL zależności obok pliku wykonywalnego (lub jako zestawów systemowych). Podobnie setup.exejest również z .deb. Odpowiednikiem budowania ze źródła jest również budowanie ze źródła w systemie Windows ;-).
Stephen Kitt,
I robić nie jedna rzecz, która sprawia, MSis bliżej pakietów Debiana niż wykonywalnych Setup: MSI nie można zainstalować innego MSI, podobnie jak pakiet Debian nie można zainstalować inny pakiet (z wyjątkiem poprzez jego zależnościami).
Stephen Kitt,
@StephenKitt: setup.exeinstalatory w stylu nie są w żaden sposób „śledzone” przez system operacyjny, chyba że uruchamiają MSI pod spodem (a wtedy MSI są śledzone). Fakt, że mają klucz rejestru odinstalowującego, nie ma na to wpływu. To tak, jakby powiedzieć, że każdy plik jest śledzony, ponieważ jest wymieniony w systemie plików.
user541686,
2
MSI może i często (w większych produktach) ma zależności, jednak biorąc pod uwagę, że nie ma centralnego repozytorium .MSI, zwykle dzieje się tak, gdy brakuje zależności, to że odmawiają instalacji.
Matteo Italia
1
„coś, czego nigdy nie widziałem w systemie Windows: dodawanie użytkowników do usługi systemowej”. Jestem pewien, że robią to instalatory SQL Server, IIS i Visual Studio. Ale może to być mniej oczywiste, ponieważ model użytkowników systemu Windows jest nieco bardziej wyrafinowany niż domyślny model Unix / Linux (czy jesteś rootem, czy nie) ..
MSalters
15

Jednoplikowe instalatory binarne, które widziałem w systemie Linux, były .shplikami zawierającymi skrypt powłoki połączony z binarnym blokiem BLOB, taki jak ten:

#!/bin/bash
tmpdir=$(mktemp -d /tmp/installer.XXX)
tail -n +6 "$0" | tar -xJf - -C "$tmpdir" || exit 1
sudo "$tmpdir/setup.sh"
rm -rf "$tmpdir"
exit
[binary content follows]

Jest to w zasadzie równoważne do tego, setup.exektóry sam również rozpakowuje się do folderu tymczasowego i uruchamia z niego prawdziwy instalator.

Dmitrij Grigoriew
źródło
6

Zaczerpnięte z: /ubuntu/13415/what-are-run-files/13416#13416

Plik .run jest zwykle niestandardowym programem, który należy wykonać, aby zainstalować program. nie są one ogólnie obsługiwane, ponieważ nie śledzą, dokąd idą pliki i zwykle nie zapewniają metody odinstalowywania. nie ma sposobu, aby upewnić się, co skrypt zrobi z twoim systemem, więc są uważane za niebezpieczne.

Są one zbliżone do pliku exe systemu Windows i jako takie mają takie same problemy.

Zumo de Vidrio
źródło