. profil tidak bersumber di Debian Wheezy LXDE

11

Saya tambahkan $HOME/binke $PATHdari ~/.profile. Namun, sepertinya itu tidak bersumber saat login. Saya menggunakan manajer login - lxdmsaya pikir, dan tidak startx. Saya tahu ini penting untuk skrip mana yang dieksekusi.

Untuk menggambarkan, lihat bagaimana $HOME/binditambahkan setelah saya secara eksplisit sumber ~/.profile. Tapi bukankah seharusnya itu bersumber selama login grafis?

sashoalm@aspire:~$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ source ~/.profile 
sashoalm@aspire:~$ echo $PATH 
/home/sashoalm/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ 
sashoalm
sumber
Sudahkah Anda mencoba menambahkannya ke / etc / profile?
MariusMatutiae
3
Saya tidak ingin ini bersifat global untuk semua pengguna, hanya untuk satu pengguna.
sashoalm

Jawaban:

13

Tapi bukankah seharusnya itu bersumber selama login grafis?

Ada perdebatan kecil tentang hal itu di mana beberapa login grafis mengambil sikap yang tidak biasa ...

Saya menambahkan $ HOME / bin ke $ PATH dari ~ / .profile. Namun, sepertinya itu tidak bersumber saat login. Saya menggunakan manajer login - lxdm saya pikir

Benar. Kebanyakan DM membaca ~/.profileketika Anda masuk. Namun, mereka harus melakukan ini secara eksplisit, karena ~/.profilesecara tradisional bersumber dari shell login dan DM (GUI login) bukan shell!

Yang merupakan pembenaran yang telah saya lihat dari lightdmorang - orang untuk tidak sumber ~/.profilesecara eksplisit - karena DM bukan shell.

Anda dapat mengambil sumber ~/.profiledari ~/.xsession- lihat di sini .

goldilocks
sumber
2
Sumber ~/.profiledari ~/.xsessionmungkin berfungsi ketika jawaban ini ditulis, tetapi sepertinya tidak berfungsi lagi. Saya membuatnya bekerja dengan sumber itu ~/.xsessionrcsebagai gantinya.
Filip S.
2

Jika bash adalah shell login Anda, maka itu akan mencoba ~/.bash_profile, ~/.bash_logindan ~/.profiledalam urutan ini. Namun itu akan berhenti pada yang pertama ia temukan.

Jika Anda ~/.profiletidak bersumber, maka itu berarti Anda memiliki salah satu dari dua lainnya (mungkin keduanya) di HOMEdirektori Anda . Anda harus memeriksa yang mana, lalu menempatkan PATHpernyataan baru di yang pertama.

MariusMatutiae
sumber
3
Meskipun itu kemungkinan alasannya, file-file itu tidak ada di sistem saya (saya telah memeriksa bahkan sebelum bertanya).
sashoalm
2

Setuju dengan @goldilocks sebagian besar. Hanya ingin menambahkan bahwa script untuk sumber ~/.profileadalah ~/.xsessionrc, bukan ~/.xsession.

Inilah alasannya:

qxu@debian:/etc/X11/Xsession.d$ cat 40x11-common_xsessionrc
# This file is sourced by Xsession(5), not executed.

#Source user defined xsessionrc (locales and other environment variables)
if [ -r "$USERXSESSIONRC" ]; then
  . "$USERXSESSIONRC"
fi

qxu@debian:/etc/X11$ grep USERXSESSIONRC Xsession
USERXSESSIONRC=$HOME/.xsessionrc
Qiang Xu
sumber
1

Ketika Bash dipanggil sebagai shell login interaktif, atau sebagai shell non-interaktif dengan --loginopsi, Bash pertama kali membaca dan mengeksekusi perintah dari file /etc/profile, jika file itu ada. Setelah membaca file itu, tampaknya untuk ~/.bash_profile, ~/.bash_logindan ~/.profile, agar, dan membaca dan mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca.

Jadi, ketika ~/.bash_profileada, ~/.profiletidak akan pernah dibaca.

kekacauan
sumber
4
Ya, tetapi tidak ada dalam kasus saya.
sashoalm