Warum verwenden einige Pakete 'make install', während andere 'sudo make install' verwenden?

8

Ich habe kürzlich den LAME-Encoder auf meinem Server installiert, um WAV in MP3 umzuwandeln, und das hat funktioniert ./configure; make; make install.

Ich habe dann versucht, den OGG-Encoder zu installieren, und das erfordert './configure, make, sudo make install' - was ich nicht tun kann, da ich keinen VPS habe (und ich möchte lieber nicht 15 Dollar pro Monat für ein VPN bezahlen einen Codec installieren).

Ich bin neu in all dem und ich verstehe, dass sudo Ihnen Berechtigungen gibt - aber ich habe versucht herauszufinden, warum genau einige make installs sudo-Zugriff erfordern und andere nicht. Ich habe die Antwort noch nicht gefunden.

Alexbooots
quelle
Sie sollten in der Lage sein, das Makefile (oder eine Vorlage, aus der das Makefile generiert wird) zu ändern oder Befehlszeilenoptionen an etwas (wahrscheinlich ./configure) zu übergeben, damit es in einem anderen Verzeichnis installiert wird (vermutlich in einem Verzeichnis, auf das Sie nicht sudozugreifen müssen) ).

Antworten:

7

Normalerweise versuche ich es sudotrotzdem ohne auszuführen - manchmal funktioniert es. Manchmal denken Paketersteller, dass dies sudoerforderlich ist, sie verwenden es aufgrund ihrer Präferenz oder entscheiden sich auf andere Weise dafür, Dinge in Nichtbenutzerbereichen des Systems zu installieren. Manchmal ist dies notwendig, aber oft nicht.

Der andere häufige Grund, den ich für die Verwendung von sehe, sudosind Blog-Posts von Drittanbietern, in denen erklärt wird, wie Software installiert wird, und anstatt die Extrameile zu gehen und Ihnen zu erklären, wie Sie sie ohne sudoBerechtigungen installieren , werden Sie aufgefordert, sie sudoaufgrund der Person zu verwenden Das Schreiben des Beitrags wird einfach sudofür alles verwendet, was nicht wirklich eine gute Idee ist.

Theoretisch sollte ein Paket nur dann benötigt sudowerden, wenn es sich in Bereichen des Systems installieren muss (oder entscheidet), die nur über den Administratorzugriff geändert werden können.

Im Allgemeinen tun dies immer weniger Pakete, da Benutzer immer mehr Software ohne sudoZugriff installieren müssen .

Jefflunt
quelle
2
Die meisten Pakete sollten irgendwo Konfigurationsoptionen haben, damit Sie sie an anderen Orten installieren können. Ihre Verwendung erfordert möglicherweise etwas mehr Aufwand, aber wenn Sie dies nicht können sudo, bleiben Sie dabei.
6

Es hängt davon ab, ob Sie es für Sie oder für alle Benutzer installieren . (Meistens. Einige Dinge wie Kernelmodule erfordern Root-Zugriff, unabhängig davon, wer die Endfunktionen verwendet.)

Die meisten Programme, die ein ./configureSkript bereitstellen, akzeptieren auch ein --prefix=~/binoder --prefix=~/Local/so, dass Sie es in Ihrem Home-Verzeichnis installieren können. Nicht alle Programme bieten einen ./configure, aber die meisten bieten einen Mechanismus Makefile, mit dem Sie das Installationsziel konfigurieren können.

Also: Sind Ihre Bibliotheken / Programme für Sie oder für alle Benutzer auf Ihrem System?

Sarnold
quelle
Sie sind nur für mich zu verwenden .. und, brill! .. Ich habe ./configure --exec-prefix = / home / Benutzername / Ordner --prefix = / home / Benutzername / Ordner verwendet und es scheint in Ordnung gegangen zu sein ohne sudo (was es nicht tat, wenn nur ./configure verwendet wurde) für libogg, libvorbis, habe einige probleme mit libtheora und vorbis-tools, bin mir aber noch nicht sicher, worum es geht. Ich sollte es aber bekommen können. Vielen Dank!
3
Möglicherweise müssen Sie dann eine Befehlszeilenoption verwenden, z. B. --theora-path=/home/username/folderbeim Kompilieren weiterer Programme. Lesen Sie unbedingt die READMEoder ähnliche Dateien, um zu erfahren, welche Variablen möglicherweise geändert werden müssen.
Sarnold
0

Es kommt hauptsächlich auf das Lesen / Schreiben / Ausführen von Dateiberechtigungen an. Sudo hat keine eingeschränkten Rechte.

Stellen Sie sich ein Administratorkonto in Windows im Vergleich zu einem Benutzer- oder Gastkonto mit eingeschränkten Rechten vor. Gleiche Sache.

Becken
quelle