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

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 .


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.


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

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.


4
Oui, mais cela n'existe pas dans mon cas.
— sashoalm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.