Noob hier: Ich habe ein Problem, wenn ich über SSH auf meinen Server zugreife, ist der $ PATH korrekt
root@ks391320:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Aber wenn ich meinen Server über eine XRDP-Sitzung öffne und zum Terminal gehe, wird ein falscher PFAD angezeigt :
root@ks391320:~# echo $PATH
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
Dies führt zu einem Problem, da beim Versuch, etwas mit dem "Package Installer" zu installieren, dieser Fehler (unter anderem) angezeigt wird.
dpkg: warning: 'ldconfig' not found in PATH
command-line
gui
paths
Ivan Castellanos
quelle
quelle
/etc/environment
!1
Der systemweite Standardpfad ist in definiert
/etc/environment
. Stellen Sie zunächst sicher, dass ein vernünftiger Wert festgelegt ist. Als Referenz ist hier meine, die der Standardinstallation entspricht:2
Wenn dies
/etc/environment
vernünftig ist und Sie immer noch Probleme haben, können Sie den Standardpfad in überschreiben~/.bashrc
. Zum Beispiel habe ich dies in meiner .bashrc, die ein Verzeichnis genau dann an meinen PATH anfügt, wenn es existiert und nicht bereits in meinem PATH ist:Da aus Ihrem Screenshot hervorgeht, dass Sie Root-Anmeldungen aktiviert haben, müssen Sie auch die .bashrc-Datei von root festlegen. (Da sich root in Ubuntu nicht standardmäßig anmelden kann, ist diese Konfiguration vermutlich weniger getestet und hängt möglicherweise mit Ihrem Problem zusammen.)
3
Wenn die ersten beiden Methoden fehlschlagen, überprüfen Sie, ob Ihr XRDP-Client etwas Exotisches tut. In diesem Fall müssen Sie es entweder so konfigurieren, dass es normal funktioniert, oder einen Weg finden, um es zu umgehen.
Aktualisieren
Ich habe mich im System umgesehen. Sie können alle Stellen auf Ihrem System finden, die einen PFAD mit dem folgenden Befehl angeben (der
sudo
ist vorhanden, da einige Dateien unter/etc
für normale Benutzer nicht lesbar sind):Ich denke, es ist sicher, viele dieser Orte zu ignorieren, was zu folgendem Befehl führt:
Eine Datei, die möglich erscheint (obwohl ich wirklich nicht viel darüber weiß), ist
/etc/login.defs
. Sie könnten es sich ansehen.Außerdem können Sie auch Ihre Punktedateien durchsuchen:
quelle
gksudo gdebi-gtk /full/path/to/package.deb
? Ich fand es etwas wählerisch. Wenn ja, sollte es die Umgebung erben, aus der es gestartet wurde.Vollständige Offenlegung: Ich verwende kein Ubuntu ... aber ich hatte das gleiche Problem mit Debian.
xrdp startet /etc/xrdp/startwm.sh (es sei denn, Ubuntu hat diesen Speicherort geändert). Ich habe diese Zeile hinzugefügt:
an den Anfang von /etc/xrdp/startwm.sh und der PATH ist jetzt korrekt eingestellt.
Für Ubuntu hinzufügen
an die Spitze von /etc/xrdp/startwm.sh könnte dasselbe tun.
quelle
Das hat mich auch eine Weile verblüfft.
/etc/environment
ist kein Shell-Skript, daher können Sie es nicht als eines bezeichnen. Was für mich funktioniert hat, war das "sesman" -Skript des xrdp-Sitzungsmanagers in pam zu bearbeiten. Ich habe meiner/etc/pam.d/sesman
Datei die Zeile "Sitzung" hinzugefügt :Dadurch lädt der Sitzungsmanager die
/etc/environment
Datei bei der Anmeldung.quelle
Theoretisch hinzufügen
würde funktionieren, aber es funktioniert nicht. Ich habe es einfach oben in meine .bashrc eingefügt, um das Problem zu beheben
quelle
Dank der vorherigen Antworten bin ich zu einer solchen Lösung gekommen:
Möglicherweise nicht das Optimum, aber es funktioniert (Ubuntu 12.04).
quelle
@ John: Ich glaube, du musst deine /etc/xrdpstartwm.sh überprüfen - die ersten Zeilen in meiner lauten:
Das heißt, wenn / etc / X11xinit / xinitrc vorhanden ist, wird diese Datei stattdessen ausgeführt - und es hilft nicht viel, die hinzuzufügen
zu /etc/xrdpstartwm.sh. :-)
/ Per Hertz
quelle