Noob di sini: Saya punya masalah, ketika saya mengakses server saya melalui SSH, $ PATH benar
root@ks391320:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Tetapi ketika saya membuka server saya melalui sesi XRDP dan pergi ke terminal itu menunjukkan PATH yang salah :
root@ks391320:~# echo $PATH
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
Dan ini menciptakan masalah karena ketika saya mencoba menginstal sesuatu menggunakan "Package Installer" itu menunjukkan kesalahan ini (antara lain)
dpkg: warning: 'ldconfig' not found in PATH
command-line
gui
paths
Ivan Castellanos
sumber
sumber
/etc/environment
!1
PATH standar seluruh sistem didefinisikan dalam
/etc/environment
. Pertama, verifikasi bahwa itu disetel ke nilai waras. Untuk referensi, ini milik saya, yang sama dengan instalasi default:2
Jika
/etc/environment
waras dan Anda masih mengalami masalah, Anda dapat mengganti PATH default di~/.bashrc
. Misalnya, saya memilikinya di .bashrc saya yang menambahkan direktori ke PATH saya jika dan hanya jika ada dan belum ada di PATH saya:Karena muncul dari tangkapan layar Anda bahwa Anda telah mengaktifkan login root, pastikan juga untuk mengatur .bashrc root. (Omong-omong, karena root tidak bisa login secara default di Ubuntu, konfigurasi ini mungkin kurang teruji dan mungkin terkait dengan masalah Anda.)
3
Jika dua metode pertama gagal, maka periksa apakah klien XRDP Anda melakukan sesuatu yang eksotis. Jika demikian, Anda harus mengonfigurasinya untuk bekerja secara normal atau mengidentifikasi cara untuk mengatasinya.
Memperbarui
Saya telah melakukan beberapa pencarian di sekitar sistem. Anda dapat menemukan semua tempat di sistem Anda yang menentukan PATH dengan perintah berikut (
sudo
ada di sana karena beberapa file di bawah/etc
tidak dapat dibaca oleh pengguna normal):Saya pikir aman untuk mengabaikan banyak dari tempat-tempat itu, menghasilkan perintah berikut:
Satu file yang terlihat mungkin (walaupun saya benar-benar tidak tahu banyak tentang itu) adalah
/etc/login.defs
. Anda mungkin melihatnya.Selain itu, Anda juga dapat menangkap dotfiles Anda:
sumber
gksudo gdebi-gtk /full/path/to/package.deb
? Saya merasa agak pilih-pilih. Jika demikian, maka ia harus mewarisi lingkungan tempat ia diluncurkan.Pengungkapan penuh: Saya tidak menggunakan Ubuntu ... tapi saya punya masalah yang sama dengan Debian.
xrdp meluncurkan /etc/xrdp/startwm.sh (kecuali Ubuntu telah memodifikasi lokasi ini). Saya menambahkan baris ini:
ke bagian atas /etc/xrdp/startwm.sh dan PATH sekarang diatur dengan benar.
Untuk Ubuntu, menambahkan
ke bagian atas /etc/xrdp/startwm.sh mungkin melakukan hal yang sama.
sumber
Ini membingungkan saya untuk sementara waktu juga.
/etc/environment
bukan skrip shell, jadi Anda tidak dapat menyebutnya sebagai skrip shell. Apa yang berhasil bagi saya adalah mengedit skrip manajer sesi xrdp "sesman" di pam. Saya menambahkan baris "session" ke/etc/pam.d/sesman
file saya :Ini membuat manajer sesi memuat
/etc/environment
file saat login.sumber
Secara teori menambahkan
akan bekerja tetapi tidak. Saya hanya meletakkannya di bagian atas .bashrc saya untuk memperbaiki masalah
sumber
Berkat jawaban sebelumnya saya datang ke solusi seperti itu:
Mungkin bukan yang paling optimal tetapi berfungsi (Ubuntu 12.04).
sumber
@ John: Saya percaya Anda perlu memeriksa /etc/xrdpstartwm.sh Anda - baris pertama di tambang berbunyi,
Itu berarti bahwa jika / etc / X11xinit / xinitrc ada, file itu akan dieksekusi sebagai gantinya - dan itu tidak akan banyak membantu untuk menambahkan
ke /etc/xrdpstartwm.sh. :-)
/ Per Hertz
sumber