Làm cách nào để đặt biến PATH cho tất cả người dùng trên máy chủ?


52

Tôi vừa hoàn tất cài đặt LaTeX cho máy chủ Ubuntu của công ty tôi mà tất cả chúng tôi sử dụng SSH. Khi kết thúc cài đặt, nó nói:

Add /usr/local/texlive/2010/texmf/doc/man to MANPATH, if not dynamically determined.

Add /usr/local/texlive/2010/texmf/doc/info to INFOPATH.

Most importantly, add /usr/local/texlive/2010/bin/x86_64-linux to your PATH for current and future sessions.

Làm cách nào để làm điều này sao cho các biến này được đặt cho tất cả người dùng trên hệ thống? (Và vâng, tôi có quyền sudo).


Câu trả lời của @ geirha (với nhận xét của Rob về MANPATH) giải quyết vấn đề này ngoại trừ biến INFOPATH. Mặc dù tôi tưởng tượng nó không được người dùng (?) Thường xuyên sử dụng, nhưng có ai biết vị trí chính xác để đặt nó không? Có nên cũng /etc/environment vậy không?
belacqua

@jgbelacqua afaik Debian và một số bản phân phối Linux khác sử dụng nó nhưng không phải Ubuntu. Hoặc ít nhất đó là điều tốt nhất tôi có thể thu thập frm tìm kiếm trên google trong một giờ.
Rob S.

Khi bạn cài đặt TeXlive 2010, bạn nên hỏi bạn có muốn tạo liên kết tượng trưng cho tất cả các nhị phân không. Nếu bạn đã nói đồng ý, điều này sẽ không thành vấn đề.
frabjous

@frabjous Nó không bao giờ hỏi tôi. Lệnh duy nhất tôi từng đưa ra là "i" khi bắt đầu cài đặt. Dù sao, sau khi thiết lập các biến, tất cả đều hoạt động hoàn hảo.
Rob S.

1
@frabjous: Tùy chọn symlink dường như đang bị thiếu trong trình cài đặt. Tôi đã cài đặt TeXLive 2011 ngày hôm nay và có thể tìm thấy nó nữa. Tôi đã cài đặt TeXLive trong nhiều phiên bản ít nhất một chục lần trước đây, vì vậy tôi tự hỏi tại sao nó không còn ở đó nữa.
Martin Scharrer

Câu trả lời:


57

Bạn thêm chúng vào /etc/environment.

Nó có khả năng đã có một dòng cho PATH, vì vậy bạn chỉ cần nối :/usr/local/texlive/2010/bin/x86_64-linuxđến cuối của nó. Sau đó thêm hai dòng mới cho MANPATH và INFOPATH.

Xem https://help.ubfox.com/community/En MôiVariables .

Sau khi chỉnh sửa /etc/environment, đăng xuất và đăng nhập lại và kiểm tra xem, ví dụ như echo "$MANPATH"xuất ra giá trị bạn đã thêm.


Cuối cùng, tôi cũng phải chỉnh sửa /etc/manpath.config. Cảm ơn.
Rob S.

2
Tôi đã xóa câu trả lời của mình, vì đây có vẻ là một lựa chọn tốt hơn. Theo help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment là nơi dành cho "Cài đặt biến môi trường có ảnh hưởng đến hệ thống như một toàn thể (chứ không phải sau đó chỉ cần một người dùng cụ thể) [...]" /etc/profile/etc/bash.bashrcđược liệt kê là 'Không được đề xuất'
belacqua

Khó chịu không làm việc cho root!

7

Thêm các PATH mặc định này vào /etc/profile. Nó sẽ làm việc cho bash và sh. Bash là mặc định trong Ubuntu.

PATH=$PATH:<new path you need to add>

echo $SHELLcó thể được sử dụng để xác định trình bao của người dùng hiện tại hoặc có thể được xem từ /etc/passwdtệp.

Ngoài ra, bạn có thể bao gồm nó /etc/environmentlà tốt. Ở đây bạn chỉ có thể thêm PATH vào cuối câu lệnh PATH.


Tôi đã mở vv / hồ sơ trong vim và không có gì liên quan đến PATH trong đó. Cảm ơn đã trả lời giống nhau.
Rob S.

17
Thứ tự thực hiện của các tệp là / etc / môi trường -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile ->
/home/<user>/.bashrc

chỉnh sửa / etc / biến đường dẫn hồ sơ có thể làm hỏng hệ thống và tốt hơn hết là tránh. đặc biệt khi bạn đang kết nối với máy chủ từ xa thông qua ssh.
AmirHossein Rezaei
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.