GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der Zweck des Befehls „install“?

Ich habe den install gesehen Befehl, der in vielen Makefiles verwendet wird, und seine Existenz und Verwendung sind irgendwie verwirrend. Auf den Manpages sieht es aus wie eine Kopie von cp mit weniger Funktionen, aber ich nehme an, es würde nicht verwendet werden, es sei denn, es hätte einen Vorteil gegenüber cp . Was ist los?

Akzeptierte Antwort:

install kopiert nicht nur Dateien, sondern ändert auch den Besitz und die Berechtigungen und entfernt optional Debugging-Symbole aus ausführbaren Dateien. Es kombiniert cp mit chown , chmod und strip . Es ist ein praktisches Tool auf höherer Ebene, das eine allgemeine Abfolge elementarer Aufgaben erfüllt.

Ein Vorteil von install über cp für die Installation von ausführbaren Dateien besteht darin, dass, wenn das Ziel bereits vorhanden ist, die Zieldatei entfernt und eine neue erstellt wird. Dadurch werden alle aktuellen Eigenschaften wie Zugriffskontrolllisten und Funktionen beseitigt, die sowohl als Vor- als auch als Nachteil angesehen werden können. Wenn ausführbare Dateien aktualisiert werden und Instanzen dieser ausführbaren Datei ausgeführt werden, werden diese unbeeinflusst weiter ausgeführt. Im Gegensatz dazu cp aktualisiert die vorhandene Datei, falls vorhanden. Bei den meisten Unix-Varianten schlägt dies mit dem Fehler EBUSY¹ fehl, wenn das Ziel eine laufende ausführbare Datei ist; bei manchen kann es zum Absturz des Targets führen, weil es Codeabschnitte dynamisch lädt und das Modifizieren der Datei dazu führt, dass unsinniger Code geladen wird.

install ist ein BSD-Befehl (hinzugefügt in 4.2BSD, also in den frühen 1980er Jahren). Es wurde nicht von POSIX übernommen.

¹ „Textdatei beschäftigt“. In diesem Zusammenhang bedeutet „Textdatei“ aus obskuren historischen Gründen „binäre ausführbare Datei“.


Linux
  1. Meistern Sie den Linux-ls-Befehl

  2. So installieren Sie Software über die Linux-Befehlszeile

  3. Eine Einführung in den diff-Befehl

  4. bc:Befehl nicht gefunden

  5. Ist das pdftotext-Befehlszeilentool für Mac?

Der Timer-Befehl in Linux

Googler – Führen Sie Google-Suchen über die Befehlszeile aus

Howto:Facebook Messenger auf der Kommandozeile

So installieren und verwenden Sie den Bildschirmbefehl Ubuntu 20.04

So installieren und verwenden Sie den Ack-Befehl unter Linux

Wie installiere ich Google Chrome unter Ubuntu 18.04 über die Befehlszeile?