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

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 .


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.


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

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.


4
Ja, aber in meinem Fall existiert es nicht.
Sashoalm
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.