Entspricht ".msi" und "setup.exe" Dateien in Debian oder Ubuntu?

15

Diese Antwort erläutert .msiund setup.exeDateien für die Installation einer Anwendung unter Windows.

Gibt es Entsprechungen zu .msiund zu setup.exeDateien in Debian oder Ubuntu? Do .debPaketdateien entsprechen .msioder setup.exeoder etwas anderes?

Tim
quelle
8
Ich weiß nicht, warum du das fragst, also sage ich das als allgemeinen Kommentar für jeden, der auf diese Frage stößt. Während es Möglichkeiten gibt, Software "manuell" zu installieren, wird von den meisten Linux-Distributionen bevorzugt (und dringend empfohlen), Software über den Paket-Manager zu installieren. Auf diese Weise erhalten Sie automatisch Sicherheitsupdates und es werden einige Tests durchgeführt, um die Kompatibilität mit der Distribution sicherzustellen. Wenn Sie die neueste und beste Version der Software benötigen, die in Haupt-Repos nicht verfügbar ist, verwenden Sie ein Community-Repo (z. B. ein PPA in Ubuntu), aber verwenden Sie immer den Paket-Manager.
Muzer
Unter .setupWindows gibt es keine Dateien. Ist setup.exedas ein typischer Name für ein Installationsprogramm?
Gronostaj
Siehe die apt-getManpage und die von dort verlinkten Dokumente. Selbst für Windows gibt es keine Entsprechung apt-get install, geschweige denn für alle anderen Funktionen.
25.
5
@jthill, das ist falsch. Es ist nicht so umfassend oder so beliebt wie apt-get, aber die neuesten (ab Win7) Versionen von Powershell OneGetkönnen installiert werden Chocolatey(entspricht HomebrewMac). Sie mögen weniger beliebt sein als ihre 'nix-Entsprechungen, aber zu sagen, dass es unter Windows keine Entsprechung gibt, ist offensichtlich falsch.
Flith
1
@Tim: Diese Frage kann nicht sinnvoll beantwortet werden, ohne dass Sie genau angeben, was Sie mit "Äquivalent" meinen. Welche spezifischen Eigenschaften von .msiDateien und Installationsprogrammen interessieren Sie? Was sind die genauen Kriterien, um festzustellen, ob etwas "gleichwertig" ist oder nicht? Zum Beispiel: Installer sind nur Programme wie jedes andere Programm. An einem Programm mit dem Namen ist absolut nichts Besonderes setup.exe. Da setup.exeist nur ein Programm wie jedes andere Programm, und Debian sicherlich tut haben ein Konzept von „Programm“, betrachten Sie das Äquivalent? Wenn nein, warum nicht?
Jörg W Mittag

Antworten:

28

Wahrscheinlich näher an einem MSI-Installationsprogramm als an einem setup.exe, enthält ein .debPaket einen Baum von Dateien, die in das Dateisystem kopiert werden sollen, sowie eine Sammlung von Hooks, die vor und nach der Installation ausgeführt werden sollen (unter anderem). Die Hooks können effektiv alles auf dem System tun, einschließlich etwas, von dem ich glaube, dass ich es unter Windows noch nie gesehen habe: Hinzufügen von Benutzern für einen Systemdienst. Eine Sache, die sie nicht tun können, ist die Installation eines anderen .debPakets - die Datenbank ist während der Installation gesperrt, daher kann dies nur durch Abhängigkeiten erreicht werden. Bei der Installation eines .debPakets werden dann zur Vereinfachung der Wartung Einträge in einer zentralen Datenbank mit installierten Paketen erstellt.

Das ttf-mscorefontsPaket ist insofern interessant, als das Paket selbst nur ein Skript zum Herunterladen und Installieren der Schriftarten enthält. Dieses Skript wird in einem dieser Hooks ausgeführt.

Näher an setup.exekönnte ein Progamm Quellcode von der Projekthomepage wird das Herunterladen dann laufen ./configure && make && sudo make install, oder was auch immer andere Methode der Autoren entschieden. Da bei dieser Methode das Paket nicht zur Datenbank der installierten Programme hinzugefügt wird, kann das spätere Entfernen erheblich schwieriger sein.

Ein weiterer Unterschied besteht darin, dass a .debseine Abhängigkeiten angibt, sodass eine ordnungsgemäße Installation garantiert werden kann. Soweit ich weiß, kann in der Windows-Welt ein MSI nicht die Installation eines anderen MSI verursachen. Daher setup.exewird es normalerweise für diese Art der Abhängigkeitsverfolgung verwendet. In mehreren Kommentaren wird darauf hingewiesen, dass MSIs Abhängigkeiten benennen können. Da es jedoch keine zentrale Datenbank für MSIs gibt, wie dies für .debPakete der Fall ist , führt das Fehlen einer Abhängigkeit lediglich zu einem Installationsfehler.

A .debliegt also sozusagen zwischen einem MSI-Installer und a setup.exe. Das Paket kann während der Hooks vor und nach der Installation alle gewünschten Aktionen ausführen, kann seine eigenen Abhängigkeiten benennen und in der Regel finden und speichert die Installation an einem zentralen Ort, um die Wartung zu vereinfachen.

Fuchs
quelle
2
Unter Windows werden setup.exeInstallationsprogramme im Stil von -style auch in das System des überwachten Installationsprogramms integriert (mit Deinstallationsprogrammen usw.). Sowohl mit MSI als auch mit .exeInstallationsprogrammen werden Abhängigkeiten behandelt, indem die Abhängigkeit in das Installationsprogramm eingebettet wird ( z. B. das weiterverteilbare VC-Installationsprogramm oder das DirectX-Installationsprogramm) und indem Abhängigkeits-DLLs neben der ausführbaren Datei (oder als Systemassemblys) installiert werden. So setup.exeist es auch ähnlich .deb. Das Äquivalent zum Bauen aus dem Quellcode ist auch das Bauen aus dem Quellcode unter Windows ;-).
Stephen Kitt
Ich mache nichts, was MSIs näher an Debian-Paketen bringt als Setup-Programme: Ein MSI kann kein anderes MSI installieren, genau wie ein Debian-Paket kein anderes Paket installieren kann (außer über seine Abhängigkeiten).
Stephen Kitt
@StephenKitt: setup.exe-Style-Installer werden vom Betriebssystem in keiner Weise "verfolgt", es sei denn, sie führen MSIs darunter aus (und dann werden die MSIs verfolgt). Die Tatsache, dass sie einen Registrierungsschlüssel zur Deinstallation haben, hat darauf keinen Einfluss. Das heißt, jede Datei wird nachverfolgt, weil sie im Dateisystem aufgelistet ist.
Mehrdad
2
MSI kann und kann (in größeren Produkten) Abhängigkeiten aufweisen, da es kein zentrales MSI-Repository gibt. Wenn Sie jedoch eine Abhängigkeit übersehen, lehnen Sie in der Regel die Installation ab.
Matteo Italia
1
"Etwas, von dem ich glaube nicht, dass ich es jemals unter Windows gesehen habe: Hinzufügen von Benutzern für einen Systemdienst". Ich bin ziemlich sicher, dass die SQL Server-, IIS- und Visual Studio-Installer dies tun. Es ist jedoch möglicherweise weniger offensichtlich, da das Windows-Benutzermodell etwas verfeinert ist als das Standard-Unix / Linux-Modell (entweder Sie sind root oder nicht).
MSalters,
15

Einzelne Binärinstaller, die ich unter Linux gesehen habe, waren .shDateien, die ein Shell-Skript enthielten, das mit einem Binär-Blob verknüpft war, wie folgt:

#!/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]

Dies ist im Wesentlichen äquivalent zu a, setup.exedas sich auch selbst in einen temporären Ordner extrahiert und von dort aus das eigentliche Installationsprogramm ausführt.

Dmitry Grigoryev
quelle
6

Entnommen aus: /ubuntu/13415/what-are-run-files/13416#13416

Eine .run-Datei ist normalerweise ein benutzerdefiniertes Programm, das ausgeführt werden muss, um ein Programm zu installieren. Diese werden im Allgemeinen nicht unterstützt, da sie den Speicherort der Dateien nicht verfolgen und normalerweise keine Deinstallationsmethode bieten. Es gibt keine Möglichkeit, sicherzugehen, was das Skript mit Ihrem System macht, sodass es als unsicher eingestuft wird.

Sie befinden sich in der Nähe der Windows-Exe-Datei und sind daher mit denselben Problemen behaftet.

Zumo de Vidrio
quelle