.profile no se obtiene en Debian Wheezy LXDE

11

Añado $HOME/bina $PATHdesde ~/.profile. Sin embargo, parece que no se obtiene durante el inicio de sesión. Yo uso un administrador de inicio de sesión, lxdmcreo, y no startx. Sé que esto importa en cuanto a qué scripts se ejecutan.

Para ilustrar, vea cómo $HOME/binse agrega después de explícitamente la fuente ~/.profile. ¿Pero no debería haber sido obtenido durante el inicio de sesión gráfico?

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
fuente
¿Has intentado agregarlo a / etc / profile?
MariusMatutiae
3
No quiero que sea global para todos los usuarios, solo para un solo usuario.
sashoalm

Respuestas:

13

¿Pero no debería haber sido obtenido durante el inicio de sesión gráfico?

Hay un pequeño debate sobre eso en el que algunos inicios de sesión gráficos toman una postura inusual ...

Agrego $ HOME / bin a $ PATH desde ~ / .profile. Sin embargo, parece que no se obtiene durante el inicio de sesión. Yo uso un administrador de inicio de sesión - lxdm creo

Correcto. La mayoría de los DM leen ~/.profilecuando inicias sesión. Sin embargo, deben hacerlo explícitamente, ya ~/.profileque tradicionalmente se obtienen de shells de inicio de sesión y un DM (inicio de sesión GUI) no es un shell.

¿Cuál es la justificación que he visto de las lightdmpersonas para no abastecimiento ~/.profileexplícitamente - porque un DM no es una cáscara.

Puedes obtener ~/.profiletu fuente de ~/.xsession- mira aquí .

encerrada dorada
fuente
2
El abastecimiento ~/.profilede ~/.xsessionprobablemente funcionó cuando se escribió esta respuesta, pero ya no parece funcionar. Lo conseguí trabajando al obtenerlo en su ~/.xsessionrclugar.
Filip S.
2

Si bash es el shell de entrada, entonces se va a tratar ~/.bash_profile, ~/.bash_loginy ~/.profileen este orden. Sin embargo, se detendrá en el primero que encuentre.

Si su ~/.profilefuente no es de origen, significa que tiene uno de los otros dos (posiblemente ambos) en su HOMEdirectorio. Debe verificar cuál, luego coloque la nueva PATHdeclaración en la primera.

MariusMatutiae
fuente
3
Si bien esa es una posible razón, esos archivos no existían en mi sistema (lo había comprobado incluso antes de preguntar).
sashoalm
2

De acuerdo con @goldilocks mostely. Solo quiero agregar que el script a la fuente ~/.profilees ~/.xsessionrc, en lugar de ~/.xsession.

Aquí está la justificación:

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
fuente
1

Cuando Bash se invoca como un shell de inicio de sesión interactivo, o como un shell no interactivo con la --loginopción, primero lee y ejecuta comandos del archivo /etc/profile, si ese archivo existe. Después de leer ese archivo, busca ~/.bash_profile, ~/.bash_loginy ~/.profile, en ese orden, y lee y ejecuta órdenes desde el primero que existe y es legible.

Entonces, cuando ~/.bash_profileexiste, ~/.profilenunca será leído.

caos
fuente
44
Sí, pero no existe en mi caso.
sashoalm