.profile не використовується в Debian Wheezy LXDE


11

Я додаю $HOME/binдо $PATHс ~/.profile. Однак, здається, він не отримується під час входу в систему. Я використовую менеджер реєстрації - lxdmя думаю, і ні startx. Я знаю, що це має значення щодо того, які сценарії виконуються.

Для ілюстрації дивіться, як $HOME/binдодається значення після явного джерела ~/.profile. Але чи не слід було це знайти під час графічного входу?

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:~$ 

Ви намагалися додати його в / etc / profile?
MariusMatutiae

3
Я не хочу, щоб він був глобальним для всіх користувачів, лише для одного користувача.
сашоалм

Відповіді:


13

Але чи не слід було це знайти під час графічного входу?

Існує незначна дискусія щодо того, щодо якого деякі графічні входи займають незвичну позицію ...

Я додаю $ HOME / bin до $ PATH з ~ / .profile. Однак, здається, він не отримується під час входу в систему. Я використовую менеджер входу - думаю, lxdm

Правильно. Більшість DM читають, ~/.profileколи ви входите в систему. Однак вони повинні робити це явно, оскільки ~/.profileтрадиційно використовуються оболонки для входу, а DM (вхід в GUI) не є оболонкою!

Яке виправдання я бачив у lightdmлюдей за те, що~/.profile явно не бачив джерело - адже DM не є оболонкою.

Ви можете джерело ~/.profileсебе ~/.xsession- дивіться тут .


2
Sourcing ~/.profileз , ~/.xsessionймовірно , працював , коли цей відповідь була написана, але це не схоже на роботу більше. Я змусив його працювати, ~/.xsessionrcзамість цього.
Філіп С.

2

Якщо bash - це ваша оболонка для входу, вона спробує ~/.bash_profile, ~/.bash_loginі ~/.profileв цьому порядку. Однак вона зупиниться на першій, яку знайде.

Якщо ваш ~/.profileресурс не отриманий, це означає, що у вашому HOMEкаталозі є один із двох інших (можливо, обох) . Ви повинні перевірити, який із них, а потім помістити нове PATHтвердження в перше.


3
Хоча це можлива причина, ці файли не існували в моїй системі (я перевіряв ще до того, як запитувати).
сашоалм

2

Погодьтеся з @goldilocks щомісяця. Просто хочу додати, що сценарій для джерела ~/.profileє ~/.xsessionrc, а не ~/.xsession.

Ось обґрунтування:

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

1

Коли Bash викликається як інтерактивна оболонка для входу, або як неінтерактивна оболонка з --loginможливістю, вона спочатку зчитує та виконує команди з файлу /etc/profile, якщо такий файл існує. Після прочитання цього файлу, він шукає ~/.bash_profile, ~/.bash_loginі ~/.profile, в такому порядку, і читає і виконує команду з першого, який існує і читаються.

Отже, коли ~/.bash_profileіснує, ~/.profileйого ніколи не читатимуть.


4
Так, але в моєму випадку воно не існує.
сашоалм
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.