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 sudooder 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 sudoman nach ausführbaren Dateien? Wenn ich ein Juwel installiere (mit sudo), wird die ausführbare Datei /varoffensichtlich in den Pfad eingefügt. Ich habe diesen Pfad zu meinen ~/.profileund /etc/environmentDateien hinzugefügt , kann aber sudodie ausführbaren Dateien nicht ausführen.
Wenn ich renne:
$ gemnamees läuft mein Werkzeug richtig.$ sudo gemnamees sagt mir nurcommand not found.$ sudo echo $PATHes tut den richtigen Weg zeigen.$ sudo -i gemnamees läuft richtig.$ sudo sudo -Vzeigt, dass der Pfad erhalten bleibt.
Tut sudoEhre ~/.profileund / oder /etc/environment? Wenn ja, warum kann es meine ausführbare Datei nicht finden, während das Verzeichnis in der $PATHUmgebungsvariablen 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 $PATHden richtigen Pfad enthält), aber sie haben nie wirklich Zeigen Sie, wie Sie einen Edelstein über ausführen sudo.