Unterschied zwischen "make install" und "sudo make install"


15

Manchmal habe ich Probleme mit der Verwendung, make installdie mir permission deniedbeim Schreiben in einige Ordner einen Fehler verursachen. Also benutze ich instinktiv sudo make install. Führt dies zu zusätzlichen Problemen?

Ich benutze Debian Etch.

Antworten:


16

Vermeiden Sie lokale Installationen in Systemverzeichnissen. Die Systemverzeichnisse sind z. B. /usrfür das Paketverwaltungssystem zur Verwendung reserviert. Wenn Sie dies tun make install, bedeutet dies per Definition, dass Sie eine lokale Installation durchführen, und wenn Sie dies tun müssen sudo make install, bedeutet dies, dass Sie nicht die Erlaubnis haben, wo immer Sie schreiben.

Wenn Sie also Berechtigungsfehler mit erhalten make install, überprüfen Sie, ob Sie versuchen, in Systemverzeichnisse zu installieren, und installieren Sie /usr/localstattdessen in oder auf ähnliche Weise. /usr/localist für lokale Installationen reserviert. Möglicherweise müssen Sie sich selbst die Erlaubnis geben, an die Sie schreiben dürfen /usr/local, dies ist jedoch in der Regel problemlos möglich. Unter Debian können Sie sich selbst zur staffGruppe hinzufügen . Besser noch, suchen oder erstellen Sie ein Binärpaket und installieren Sie es stattdessen. Auf diese Weise können Sie leicht den Überblick über installierte Pakete behalten und die anderen Vorteile der Paketverwaltung nutzen.

Beachten Sie, dass das Paketverwaltungssystem laut /usr/localFHS umgekehrt nicht installiert wird. Eine Übersicht finden Sie in Abschnitt 9.1 des Debian-Richtlinienhandbuchs - Dateisystemhierarchie .


3

Hier ist ein grundlegender Überblick über die Befehle:

  • Führen Sie einen Befehl als root aus
  • Führen Sie ein Skript aus, das aus dem Quellcode erstellt werden soll

Da der Befehl sudo ausgeführt wird, den Sie als root übergeben, bedeutet dies, dass der Befehl make über Superuser-Berechtigungen verfügt. Dies bedeutet, dass, wenn das Makefile böswillig ist oder eines der Skripte, die es möglicherweise aufruft, böswillig ist, es Ihr System gefährden kann.

Kurz gesagt, wenn Sie der Software nicht vertrauen, installieren Sie sie nicht. Wenn Sie der Software vertrauen, sollte es nichts schaden, wenn Sie als Root ausgeführt werden.

Hinweis:

sudo make installist das gleiche wie su; make installin den meisten Fällen.


3
Sie haben zu Recht mit "in den meisten Fällen" abgeschlossen. Hier ist ein Eckfall.
Donnerstag,

3

Wie oben beantwortet, sudo make installkönnen Sie die Dateien in Verzeichnissen installieren, die ansonsten für Sie als Benutzer schreibgeschützt sind.

Das Problem, das ich vorhersehen kann, ist, dass Sie das Programm zu einem späteren Zeitpunkt möglicherweise deinstallieren oder aktualisieren möchten. Wenn Sie immer noch den Quellcode-Verzeichnisbaum haben, make uninstallwird das Programm für Sie deinstalliert. Wenn Sie jedoch wie viele andere typische Benutzer den Quellcode-Verzeichnisbaum gelöscht haben, haben Sie Pech. Und da Sie das Programm nicht über ein Paketverwaltungssystem installiert haben, können Sie das Programm möglicherweise auch nicht auf diese Weise deinstallieren.

Der beste Weg, solche Programme zu installieren, besteht darin, sie in Ihrem Home-Verzeichnis zu installieren. Übergeben Sie die Option --prefix=/home/<user>/<some>/<directory>an ./configure. Dadurch können Sie verwenden, make installanstatt sudo make installda /home/<user>/<some>/<directory>von Ihnen beschreibbar ist. Auch die Deinstallation ist ein Kinderspiel -rm -rf /home/<user>/<some>/<directory>

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.