![Was ist der Unterschied zwischen dem Kopieren einer a.out-Datei (ausführbare Datei) und der Installation einer Anwendung?](https://rvso.com/image/898931/Was%20ist%20der%20Unterschied%20zwischen%20dem%20Kopieren%20einer%20a.out-Datei%20(ausf%C3%BChrbare%20Datei)%20und%20der%20Installation%20einer%20Anwendung%3F%20.png)
Was ist der Unterschied zwischen der Installation einer Anwendungssoftware und dem Kopieren der ausführbaren Datei (z. B. a.out) der Anwendung? Wenn wir die Datei a.out ausführen, führt dies zu einem Ergebnis, und wenn wir die installierte Anwendung ausführen, führt dies ebenfalls zu einem Ergebnis. Ich verstehe den Unterschied nicht, wenn jemand sagt „Eine Anwendung installieren“ und eine ausführbare Datei kopieren. Was passiert eigentlich, wenn eine Anwendung installiert wird? Was ist der Unterschied, wenn man die ausführbare Datei einfach von einem Computer auf einen anderen (dasselbe Betriebssystem und ähnliche Hardware) kopiert und dort ausführt?
Antwort1
Nun, wenn man sagtInstalliereneine Anwendung, das bedeutet normalerweise, dass Sie einen Paketmanager wie dpkg
oder die höherwertige apt
Familie verwenden. In diesem Fall werden die ausführbaren Dateien in einem Paket geliefert, das auch zusätzliche Bibliotheken enthalten kann, die zum Ausführen der ausführbaren Datei erforderlich sind, Manpages, Entwicklerdateien, Konfigurationsdateien usw. Der Vorteil davon ist, dass der Administrator den Überblick darüber behalten kann, was installiert ist, und außerdem sichergestellt wird, dass bei der Installation neuer Software oder Updates die neue Software nicht mit anderer bereits installierter Software und Bibliotheken kollidiert, was zum Absturz anderer Anwendungen führen könnte.
Es kann zwar funktionieren, Ihre ausführbare Datei einfach auf ein anderes System zu kopieren, aber das ist nicht empfehlenswert, da es zu Problemen führen kann. Es ist sicher, ausführbare Dateien an einen Ort außerhalb der Systempfade zu kopieren, wie /bin/
, /sbin
, /usr/bin
, /usr/sbin
. Sie können für einen solchen Zweck und
verwenden oder noch besser ein Verzeichnis darunter für Ihre ausführbare Datei erstellen und sie dort ablegen. Rufen Sie dann die ausführbare Datei mit dem vollständigen Pfad auf oder fügen Sie den Pfad zur ausführbaren Datei zu Ihrer Umgebungsvariable hinzu./usr/local/bin
/usr/local/sbin
/opt
PATH
$ mkdir -p /opt/myapp/bin
$ cp myexec /opt/myapp/bin/
$ /opt/myapp/bin/myexec
oder
$ export PATH=$PATH:/opt/myapp/bin
$ myexec
Antwort2
Ein Kernprinzip aller Unix-ähnlichen Betriebssysteme (wie Ubuntu) istalles ist eine Datei. Wenn Sie sich den Inhalt eines Pakets ansehen, finden Sie dort auch eine ausführbare Datei, und ja, für zwei Maschinen mit genau derselben (oder zumindest sehr ähnlichen) Kombination aus Software und Hardware (Plattform), könnten Sie einfach Ihre ausführbare Datei verwenden. Die meisten Programme bestehen jedoch nicht nur aus einer ausführbaren Datei. Führen Sie es ls -R /usr |grep libreoffice
als Beispiel für ein komplexeres Paket aus. Sie möchten doch nicht alle diese Dateien jetzt von Hand an ihre einzelnen Speicherorte kopieren, oder?
Obwohl es in manchen Fällen (insbesondere beim Testen kleiner Programme) sinnvoll ist, jemandem einfach eine ausführbare Datei zu senden, möchten Sie fast immer ein Paket für ein fertiges Produkt bereitstellen.
Paketmanager kümmern sich normalerweise auch um die Installation von Abhängigkeiten, fügen Ihr Programm zur Liste der installierten Anwendungen und zum Pfad hinzu und bieten nicht zuletzt eine Option zum Aktualisieren des Programms, wenn eine neue Version veröffentlicht wird.