.profile không có nguồn gốc trong Debian Wheezy LXDE


11

Tôi thêm $HOME/binvào $PATHtừ ~/.profile. Tuy nhiên, có vẻ như nó không có nguồn gốc trong quá trình đăng nhập. Tôi sử dụng một trình quản lý đăng nhập - lxdmtôi nghĩ, và không startx. Tôi biết vấn đề này là kịch bản nào được thực thi.

Để minh họa, hãy xem cách $HOME/binthêm vào sau khi tôi rõ ràng nguồn ~/.profile. Nhưng nó không nên có nguồn gốc trong quá trình đăng nhập đồ họa?

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

Bạn đã thử thêm nó vào / etc / profile chưa?
MariusMatutiae

3
Tôi không muốn nó là toàn cầu cho tất cả người dùng, chỉ cho một người dùng.
sashoalm

Câu trả lời:


13

Nhưng nó không nên có nguồn gốc trong quá trình đăng nhập đồ họa?

Có một cuộc tranh luận nhỏ về việc một số thông tin đăng nhập đồ họa có lập trường khác thường ...

Tôi thêm $ HOME / bin vào $ PATH từ ~ / .profile. Tuy nhiên, có vẻ như nó không có nguồn gốc trong quá trình đăng nhập. Tôi sử dụng trình quản lý đăng nhập - tôi nghĩ rằng lxdm

Chính xác. Hầu hết các DM đều đọc ~/.profilekhi bạn đăng nhập. Tuy nhiên, họ phải thực hiện việc này một cách rõ ràng, vì ~/.profiletheo truyền thống có nguồn gốc từ các vỏ đăng nhập và DM (đăng nhập GUI) không phải là một vỏ!

Đó là lời biện minh mà tôi đã thấy từ lightdmmọi người vì không tìm nguồn cung ứng ~/.profilerõ ràng - bởi vì DM không phải là vỏ.

Bạn có thể ~/.profiletự tìm nguồn từ ~/.xsession- xem tại đây .


2
Tìm nguồn cung ứng ~/.profiletừ ~/.xsessioncó thể làm việc khi câu trả lời này đã được viết, nhưng nó dường như không làm việc nữa. Tôi đã làm cho nó hoạt động bằng cách tìm nguồn cung ứng ~/.xsessionrcthay thế.
Filip S.

2

Nếu bash là vỏ đăng nhập của bạn, sau đó nó sẽ cố gắng ~/.bash_profile, ~/.bash_login~/.profiletheo thứ tự này. Tuy nhiên, nó sẽ dừng lại ở cái đầu tiên nó tìm thấy.

Nếu bạn ~/.profilekhông có nguồn gốc, điều đó có nghĩa là bạn có một trong hai (có thể cả hai) trong HOMEthư mục của bạn . Bạn nên kiểm tra cái nào, sau đó đặt PATHcâu lệnh mới vào câu đầu tiên.


3
Mặc dù đó là một lý do có thể, những tệp đó không tồn tại trong hệ thống của tôi (tôi đã kiểm tra ngay cả trước khi hỏi).
sashoalm

2

Đồng ý với @goldilocks nhất. Chỉ muốn nói thêm rằng kịch bản để nguồn ~/.profile~/.xsessionrc, thay vì ~/.xsession.

Đây là lý do:

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

Khi Bash được gọi như một vỏ đăng nhập tương tác hoặc là một vỏ không tương tác với --logintùy chọn, đầu tiên nó sẽ đọc và thực thi các lệnh từ tệp /etc/profile, nếu tệp đó tồn tại. Sau khi đọc tệp đó, nó tìm kiếm ~/.bash_profile, ~/.bash_login~/.profile, theo thứ tự đó, đọc và thực thi các lệnh từ cái đầu tiên tồn tại và có thể đọc được.

Vì vậy, khi ~/.bash_profiletồn tại, ~/.profilesẽ không bao giờ được đọc.


4
Có, nhưng nó không tồn tại trong trường hợp của tôi.
sashoalm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.