.profile wird nicht in Debian Wheezy LXDE bezogen

11

Ich füge $HOME/binzu $PATHaus ~/.profile. Es scheint jedoch, dass es beim Anmelden nicht bezogen wird. Ich benutze einen Login-Manager - lxdmglaube ich und nicht startx. Ich weiß, dass es darauf ankommt, welche Skripte ausgeführt werden.

Sehen Sie sich zur Veranschaulichung an, wie das $HOME/binhinzugefügt wird, nachdem ich explizit eine Quelle erstellt habe ~/.profile. Aber sollte es nicht während des grafischen Logins bezogen worden sein?

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
quelle
Haben Sie versucht, es zu / etc / profile hinzuzufügen?
Marius Matutiae
3
Ich möchte nicht, dass es für alle Benutzer global ist, nur für einen einzelnen Benutzer.
Sashoalm

Antworten:

13

Aber sollte es nicht während des grafischen Logins bezogen worden sein?

Es gibt eine kleine Debatte darüber, zu der einige grafische Anmeldungen eine ungewöhnliche Haltung einnehmen ...

Ich füge $ HOME / bin von ~ / .profile zu $ ​​PATH hinzu. Es scheint jedoch, dass es beim Anmelden nicht bezogen wird. Ich benutze einen Login Manager - lxdm denke ich

Richtig. Die meisten DMs lesen, ~/.profilewenn Sie sich anmelden. Sie müssen dies jedoch explizit tun, da sie ~/.profiletraditionell von Login-Shells bezogen werden und ein DM (GUI-Login) keine Shell ist!

Welches ist die Rechtfertigung, die ich von den lightdmLeuten gesehen habe, weil sie nicht~/.profile explizit beschafft haben - weil ein DM keine Hülle ist.

Sie können sich ~/.profileselbst beziehen ~/.xsession- siehe hier .

Goldlöckchen
quelle
2
Die Beschaffung ~/.profilevon hat ~/.xsessionwahrscheinlich funktioniert, als diese Antwort geschrieben wurde, aber es scheint nicht mehr zu funktionieren. Ich habe es zum Laufen gebracht, indem ich es ~/.xsessionrcstattdessen eingekauft habe .
Filip S.
2

Wenn bash Ihre Login-Shell ist, wird es versucht ~/.bash_profile, ~/.bash_loginund zwar ~/.profilein dieser Reihenfolge. Es wird jedoch stoppen an der zuerst gefunden wird .

Wenn Ihre ~/.profilenicht bezogen werden, bedeutet dies, dass Sie eine der beiden anderen (möglicherweise beide) in Ihrem HOMEVerzeichnis haben. Sie sollten überprüfen, welche, und dann die neue PATHAnweisung in die erste setzen.

MariusMatutiae
quelle
3
Obwohl dies ein möglicher Grund ist, waren diese Dateien in meinem System nicht vorhanden (ich hatte sie bereits vor der Anfrage überprüft).
Sashoalm
2

Stimmen Sie mit @goldilocks am meisten überein. Hinzufügen möchte nur , dass das Skript zu Quelle ~/.profileist ~/.xsessionrc, statt ~/.xsession.

Hier ist die Begründung:

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

Wenn Bash als interaktive Anmeldeshell oder als nicht interaktive Shell mit der --loginOption aufgerufen wird , werden zuerst Befehle aus der Datei gelesen und ausgeführt /etc/profile, sofern diese Datei vorhanden ist. Nachdem die Datei zu lesen, sucht er nach ~/.bash_profile, ~/.bash_loginund ~/.profilein dieser Reihenfolge, und liest und die Befehle ausführt , von der ersten , die lesbar existiert und ist.

Also, wenn es ~/.bash_profileexistiert, ~/.profilewird es nie gelesen.

Chaos
quelle
4
Ja, aber in meinem Fall existiert es nicht.
Sashoalm