Noob tutaj: Mam problem, kiedy uzyskuję dostęp do mojego serwera przez SSH, $ PATH jest poprawny
root@ks391320:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Ale kiedy otwieram mój serwer przez sesję XRDP i przechodzę do terminala, wyświetla on niepoprawną ŚCIEŻKĘ :
root@ks391320:~# echo $PATH
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
A to stwarza problem, ponieważ kiedy próbuję zainstalować coś przy użyciu „Instalatora pakietów”, pokazuje ten błąd (między innymi)
dpkg: warning: 'ldconfig' not found in PATH
command-line
gui
paths
Ivan Castellanos
źródło
źródło
/etc/environment
!1
Domyślna ścieżka systemowa jest zdefiniowana w
/etc/environment
. Najpierw sprawdź, czy jest ustawiony na rozsądną wartość. Dla porównania, oto moja, która jest taka sama jak domyślna instalacja:2)
Jeśli
/etc/environment
jest to normalne i nadal masz problemy, możesz zastąpić domyślną PATH w~/.bashrc
. Na przykład mam to w moim .bashrc, który dołącza katalog do mojej ŚCIEŻKI wtedy i tylko wtedy, gdy istnieje i nie ma go już w ŚCIEŻCE:Ponieważ z twojego zrzutu ekranu wynika, że masz włączone logowanie użytkownika root, pamiętaj, aby ustawić również .bashrc użytkownika root. (Nawiasem mówiąc, ponieważ root nie może zalogować się domyślnie w Ubuntu, ta konfiguracja jest prawdopodobnie mniej przetestowana i może być związana z twoim problemem).
3)
Jeśli pierwsze dwie metody zawiodą, sprawdź, czy Twój klient XRDP robi coś egzotycznego. Jeśli tak, musisz albo skonfigurować go, aby działał normalnie, albo określić sposób obejścia tego.
Aktualizacja
Rozglądałem się po systemie. Możesz znaleźć wszystkie miejsca w systemie, które określają ŚCIEŻKĘ za pomocą następującego polecenia (
sudo
istnieje, ponieważ niektóre pliki/etc
są nieczytelne dla zwykłych użytkowników):Myślę, że można bezpiecznie zignorować wiele z tych miejsc, co powoduje następujące polecenie:
Jednym z plików, który wygląda na możliwy (choć tak naprawdę nie wiem zbyt wiele na ten temat) jest
/etc/login.defs
. Możesz na to spojrzeć.Ponadto możesz również grepować swoje pliki kropkowe:
źródło
gksudo gdebi-gtk /full/path/to/package.deb
? Uważam, że jest trochę wybredna. Jeśli tak, to powinien odziedziczyć środowisko, z którego został uruchomiony.Pełne ujawnienie: Nie używam Ubuntu ... ale miałem ten sam problem z Debianem.
xrdp uruchamia /etc/xrdp/startwm.sh (chyba że Ubuntu zmodyfikowało tę lokalizację). Dodałem tę linię:
na początku pliku /etc/xrdp/startwm.sh, a PATH jest teraz ustawiony poprawnie.
W przypadku Ubuntu dodawanie
na górze pliku /etc/xrdp/startwm.sh może zrobić to samo.
źródło
To mnie też zaskoczyło.
/etc/environment
nie jest skryptem powłoki, więc nie można go tak nazwać. Dla mnie zadziałała edycja skryptu „sesman” menedżera sesji xrdp w pam. Do mojego/etc/pam.d/sesman
pliku dodałem wiersz „sesja” :To powoduje, że menedżer sesji ładuje
/etc/environment
plik przy logowaniu.źródło
Teoretycznie dodawanie
działałoby, ale nie działa. Po prostu umieściłem go na górze mojego .bashrc, aby rozwiązać problem
źródło
Dzięki poprzednim odpowiedziom doszedłem do takiego rozwiązania:
Może nie być najbardziej optymalny, ale działa (Ubuntu 12.04).
źródło
@ John: Uważam, że musisz sprawdzić swój plik /etc/xrdpstartwm.sh - pierwsze linie w moim czytają,
Oznacza to, że jeśli istnieje plik / etc / X11xinit / xinitrc, plik ten zostanie zamiast tego wykonany - i nie pomoże dodanie
do /etc/xrdpstartwm.sh. :-)
/ Per Hertz
źródło