Ich verwende Rubygems (1.3.7) mit Edelsteinen, die unter Ubuntu 10.10 Root-Rechte erfordern. Wenn ich mein Setup mit einem Ubuntu 9.10 mit Rubygems 1.3.6-Installation vergleiche, sehe ich folgenden Unterschied gem environment
:
1.3.7 / 10.10 - EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin
1.3.6 / 09.10 - EXECUTABLE DIRECTORY: /usr/bin
Die Ausgabe ist die gleiche, ob ich benutze sudo
oder nicht. Um dies zu beheben (ich weiß nicht, warum es überhaupt anders ist), habe ich versucht, meine Pfadvariable zu ändern.
Meine Frage ist, wo sucht sudo
man nach ausführbaren Dateien? Wenn ich ein Juwel installiere (mit sudo
), wird die ausführbare Datei /var
offensichtlich in den Pfad eingefügt. Ich habe diesen Pfad zu meinen ~/.profile
und /etc/environment
Dateien hinzugefügt , kann aber sudo
die ausführbaren Dateien nicht ausführen.
Wenn ich renne:
$ gemname
es läuft mein Werkzeug richtig.$ sudo gemname
es sagt mir nurcommand not found
.$ sudo echo $PATH
es tut den richtigen Weg zeigen.$ sudo -i gemname
es läuft richtig.$ sudo sudo -V
zeigt, dass der Pfad erhalten bleibt.
Tut sudo
Ehre ~/.profile
und / oder /etc/environment
? Wenn ja, warum kann es meine ausführbare Datei nicht finden, während das Verzeichnis in der $PATH
Umgebungsvariablen angezeigt wird?
Ich habe die Dokumentation von gelesen sudo
, ich habe auch eine Menge Themen zu Stackoverflow und Serverfault durchsucht und durchgesehen (zum Beispiel, wie man eine PATH-Umgebungsvariable in sudo überschreibt? Aber mein Beispiel zeigt, dass sie $PATH
den richtigen Pfad enthält), aber sie haben nie wirklich Zeigen Sie, wie Sie einen Edelstein über ausführen sudo
.