.profile ne provient pas de Debian Wheezy LXDE

11

J'ajoute $HOME/binà $PATHpartir de ~/.profile. Cependant, il semble qu'il ne provienne pas de la connexion. J'utilise un gestionnaire de connexion - lxdmje pense, et non startx. Je sais que cela compte pour savoir quels scripts sont exécutés.

Pour illustrer, voyez comment le $HOME/binest ajouté après avoir explicitement source ~/.profile. Mais n'aurait-il pas dû provenir de la connexion graphique?

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
la source
Avez-vous essayé de l'ajouter à / etc / profile?
MariusMatutiae
3
Je ne veux pas que ce soit global pour tous les utilisateurs, juste pour un seul utilisateur.
sashoalm

Réponses:

13

Mais n'aurait-il pas dû provenir de la connexion graphique?

Il y a un petit débat à ce sujet sur lequel certaines connexions graphiques prennent une position inhabituelle ...

J'ajoute $ HOME / bin à $ PATH à partir de ~ / .profile. Cependant, il semble qu'il ne provienne pas de la connexion. J'utilise un gestionnaire de connexion - lxdm je pense

Correct. La plupart des DM lisent ~/.profilelorsque vous vous connectez. Cependant, ils doivent le faire explicitement, car ils ~/.profilesont traditionnellement fournis par des shells de connexion et un DM (connexion GUI) n'est pas un shell!

C'est la justification que j'ai vue des lightdmgens pour ne pas s'approvisionner ~/.profileexplicitement - parce qu'un DM n'est pas un shell.

Vous pouvez ~/.profilevous approvisionner ~/.xsession- voir ici .

boucle d'or
la source
2
Approvisionnement ~/.profilede ~/.xsessionprobablement travaillé quand cette réponse a été écrit, mais il ne semble pas fonctionner plus. Je l'ai fait fonctionner à la ~/.xsessionrcplace.
Filip S.
2

Si bash est votre shell de connexion, il essaiera ~/.bash_profile, ~/.bash_loginet ~/.profiledans cet ordre. Il s'arrêtera cependant au premier qu'il trouve.

Si votre ~/.profilen'est pas d'origine, cela signifie que vous avez l'un des deux autres (éventuellement les deux) dans votre HOMErépertoire. Vous devez vérifier laquelle, puis placer la nouvelle PATHinstruction dans la première.

MariusMatutiae
la source
3
Bien que ce soit une raison possible, ces fichiers n'existaient pas dans mon système (j'avais vérifié avant même de demander).
sashoalm
2

D'accord avec @goldilocks principalement. Je veux juste ajouter que le script à la source ~/.profileest ~/.xsessionrc, au lieu de ~/.xsession.

Voici la justification:

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
la source
1

Lorsque Bash est invoqué en tant que shell de connexion interactif ou en tant que shell non interactif avec l' --loginoption, il lit et exécute d'abord les commandes du fichier /etc/profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~/.bash_profile, ~/.bash_loginet ~/.profile, dans cet ordre, et lit et exécute les commandes de la première qui existe et est lisible.

Ainsi, lorsqu'il ~/.bash_profileexiste, ~/.profileil ne sera jamais lu.

le chaos
la source
4
Oui, mais cela n'existe pas dans mon cas.
sashoalm