Ist es normalerweise notwendig, make und make install zu machen?

3

Das hat mich immer gestört. Es sieht so aus, als würde ich immer Anweisungen zum Erstellen und Installieren sehen, die dazu sagen:

make
sudo make install

Gibt es wirklich einen Grund anzurufen make? Ruft nicht sudo make installimplizit an make?

Jason Baker
quelle

Antworten:

3

Technisch gibt es keinen Grund, warum nicht - dies hängt wirklich davon ab, wie das Makefile erstellt wurde. Es dreht sich alles um Abhängigkeiten. Wenn das Installationsziel vom Rest des Produkts abhängig gemacht wird, wird das Produkt implizit so erstellt, wie Sie es sich vorstellen.

Der Grund, warum sie getrennt sind, ist, dass Sie normalerweise als nicht privilegierter Entwickler ein 'make' machen und die 'make install' mit erhöhten Privilegien machen. Normalerweise möchten Sie diese Aktionen nicht mischen.

Shannon Nelson
quelle
1

Die 2 Befehle machen verschiedene Dinge.

make - Dies liest das Makefile, um Anweisungen zum Kompilieren der Quellen zu erhalten. Es erstellt das Programm und das Endergebnis sind Ihre Binärdateien.

make install - liest das Makefile für das Zielinstallationsverzeichnis und legt die von make erstellten Dateien in den entsprechenden Verzeichnissen ab.

John T
quelle
Gibt es nicht mindestens eine Plattform, von makeder aus aufgerufen wird make install?
Jason Baker
Sie können make with aufrufen make install, make install sucht nach einem Label im Makefile install und befolgt die Anweisungen darunter. Wenn Sie make-Direktiven darunter setzen, können Sie alles auf einmal erledigen. Es wird jedoch traditionell anders gemacht, wahrscheinlich um Verwirrung zu vermeiden, damit alle Software gleich installiert wird. Ich kenne keine Software, mit der ich den Erstellungsprozess überspringen konnte. Sie werden auch feststellen, dass make install mit dem Präfix sudo versehen ist, da der make-Vorgang überall durchgeführt werden kann und make installDateien in Verzeichnisse verschoben werden , die normalerweise schreibgeschützt sind.
John T