thay đổi / etc / môi trường không ảnh hưởng đến các biến môi trường của tôi


10

Tôi đang cố gắng cài đặt hệ thống chuyên gia Euler theo các hướng dẫn này . Để thêm biến môi trường, tôi chỉnh sửa /etc/environmentđể trở thành như sau:

 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/home/mohammad/Desktop/eye"
 EYE_HOME = "/home/mohammad/Desktop/eye"

Nhưng khi tôi sử dụng printenv PATHtôi không thấy thư mục mới được thêm vào đường dẫn của mình.

Tôi làm gì sai ở đây?


Liên kết đó không hoạt động ngay bây giờ (SourceForge ngừng hoạt động) nhưng bạn có thể chỉ định liệu bạn có muốn các biến môi trường trên toàn hệ thống không? Vì nó là cho một ứng dụng, đây có thể là trường hợp, và do đó rất nhiều câu trả lời dưới đây là sai.
Michael Scheper

Câu trả lời:


8

Tôi không biết lý do tại sao PATH không thay đổi (sau khi đăng nhập lại), nhưng

EYE_HOME = "/home/mohammad/Desktop/eye"
--------^-^

những không gian đó ngăn EYE_HOME được đặt.

Cần lưu ý rằng đó /etc/environmentkhông phải là tệp tập lệnh, mà là một loại tệp gán được đọc bởi PAM. OTOH không gian như vậy không được phép trong các tệp script như /etc/profile~/.profile.

Nếu bạn sử dụng tệp tập lệnh, bạn cần xuất các biến như trong câu trả lời của Avinash Raj.

Xin lưu ý rằng trong khi ~/.bashrchoạt động nếu bạn khởi động chương trình của mình từ cửa sổ đầu cuối, nó có thể không hoạt động nếu bạn khởi động chương trình từ môi trường đồ họa, vì nó không có nguồn gốc từ trình quản lý hiển thị.


@ gunnar-Hijalmarsson --- đúng. Thực tế là trình quản lý hiển thị không bắt đầu từ vỏ của tôi cắn tôi nhiều lần. Tôi đã đăng tải một thủ thuật để xem các biến được đặt trong các DE: askubuntu.com/a/356973/16395
Rmano

Thủ thuật hay đấy, @Rmano! Bất kỳ cơ hội nào mà bạn có thể thêm nó vào help.ubfox.com/community/EnvirVariables ?
Gunnar Hjalmarsson 17/12/13

Cảm ơn - Tôi chưa bao giờ chỉnh sửa một trong số đó và tôi không biết mình có quyền hay không. Tôi sẽ xem xét nó nếu tôi có thời gian, nhưng nếu không thì sao chép / dán bất cứ thứ gì bạn muốn --- trang đó rất cần được cập nhật. Một câu hỏi: làm tất cả các trình quản lý hiển thị (lightdm, gdm, kdm) ~/.profilengay cả khi shell mặc định của tôi không bash, nhưng, chẳng hạn , zsh?
Rmano 17/12/13

Tự kiểm tra. Tôi sử dụng zsh; các ứng dụng do DE khởi chạy sẽ thấy các biến được đặt trong ~/.pam_environment~/.profile(KHÔNG ~/.zprofile). Điều này tốt và xấu, nhưng phần xấu được giải quyết bằng cách thay đổi .profileđể nó lấy nguồn của tôi .zprofile.zshenv. Và tôi xác nhận rằng việc sử dụng .pam_environmentlà xấu, đôi khi nó bị ghi đè (không nên, nhưng nó là).
Rmano

@Rmano: Tôi biết rằng ~/.profilecó nguồn gốc từ lightdm và gdm; không chắc chắn về kdm.
Gunnar Hjalmarsson 17/12/13

5
gedit ~/.bashrc

Sau đó thêm các dòng dưới đây,

export EYE_HOME="/home/mohammad/Desktop/eye"
export PATH=$PATH:$EYE_HOME

Lưu tập tin và sourec nó,

source ~/.bashrc

1
đó sẽ là một biến toàn hệ thống?
đà Moha toàn năng


1
@AvinashRaj: biến này không chỉ sẽ chỉ dành cho người dùng, mà chúng sẽ không được nhìn thấy nếu ứng dụng không được khởi động từ thiết bị đầu cuối dòng lệnh ... môi trường đồ họa được tự khởi động, không sử dụng trình bao của người dùng. Xem Askubfox.com/a/356973/16395
Rmano

0

Bạn cũng có thể thử hai tệp này cho cấu hình toàn hệ thống:

  • /etc/profile
  • /etc/bashrc

Đối với cấu hình rộng người dùng:

  • $HOME/.profile
  • $HOME/.bashrc

Chỉ cần nối các biến như bạn đã làm trên /etc/environment. Nhưng bạn sẽ phải đăng nhập và đăng xuất (hoặc chạy tải lại thích hợp). Có thể bằng cách đăng nhập và đăng xuất /etc/environmentsẽ hoạt động nhưng tôi không chắc chắn.


-1

Bạn muốn chỉnh sửa tệp .bashrc trong thư mục chính của bạn.

Khi bạn chỉnh sửa đường dẫn bạn nên đưa :$PATHvào cuối để bạn không thay thế đường dẫn hiện tại.

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.