Bagaimana cara mengatur variabel PATH untuk semua pengguna di server?

52

Saya baru saja selesai menginstal LaTeX untuk server Ubuntu perusahaan saya yang kita semua SSH gunakan. Pada akhir instalasi dikatakan:

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.

Bagaimana saya melakukan ini sehingga variabel-variabel ini ditetapkan untuk semua pengguna pada sistem? (Dan ya, saya punya izin sudo).

Rob S.
sumber
@ geirha jawaban (dengan komentar Rob pada MANPATH) menyelesaikan ini kecuali untuk variabel INFOPATH. Meskipun saya membayangkan itu tidak sering digunakan oleh pengguna (?), Adakah yang tahu lokasi yang benar untuk mengatur itu? Haruskah demikian /etc/environment ?
belacqua
@ jgbelacqua afaik Debian dan beberapa distro Linux lainnya menggunakannya tetapi tidak untuk Ubuntu. Atau setidaknya itulah yang terbaik yang bisa saya kumpulkan dari google selama satu jam.
Rob S.
Ketika Anda menginstal TeXlive 2010, seharusnya Anda ditanya apakah Anda ingin membuat symlink untuk semua binari. Jika Anda menjawab ya, ini tidak akan menjadi masalah sama sekali.
frabjous
@frabjous Tidak pernah bertanya kepada saya. Satu-satunya perintah yang pernah saya berikan adalah "i" di awal untuk memulai instalasi. Bagaimanapun, setelah mengatur variabel, semuanya bekerja dengan sempurna.
Rob S.
1
@frabjous: Opsi symlink sekarang tampaknya hilang dari installer. Saya menginstal TeXLive 2011 hari ini dan dapat menemukannya lagi. Saya memasang TeXLive dalam beberapa versi setidaknya beberapa kali sebelumnya, jadi saya bertanya-tanya mengapa itu tidak ada lagi.
Martin Scharrer

Jawaban:

57

Anda menambahkannya ke /etc/environment.

Kemungkinan sudah memiliki garis untuk PATH, jadi Anda hanya menambahkan :/usr/local/texlive/2010/bin/x86_64-linuxsampai akhir itu. Kemudian tambahkan dua baris baru untuk MANPATH dan INFOPATH.

Lihat https://help.ubuntu.com/community/EnvironmentVariables .

Setelah mengedit /etc/environment, logout dan kembali, dan periksa apakah mis. echo "$MANPATH"Menghasilkan nilai yang Anda tambahkan.

geirha
sumber
Pada akhirnya saya juga harus mengedit /etc/manpath.config. Terima kasih.
Rob S.
2
Saya telah menghapus jawaban saya, karena ini tampaknya menjadi pilihan yang lebih baik. Menurut help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment adalah tempat untuk "Pengaturan variabel lingkungan yang mempengaruhi sistem secara keseluruhan (bukan hanya pengguna tertentu) [...]" /etc/profiledan /etc/bash.bashrcterdaftar sebagai 'Tidak dianjurkan'
belacqua
Mengganggu tidak bekerja untuk root!
Burung hantu
7

Tambahkan PATH default ini ke /etc/profile. Ini akan bekerja untuk bash dan sh. Bash adalah default di Ubuntu.

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

echo $SHELLdapat digunakan untuk menentukan shell pengguna saat ini atau dapat dilihat dari /etc/passwdfile.

Atau Anda dapat memasukkannya /etc/environmentjuga. Di sini Anda bisa menambahkan PATH di akhir pernyataan PATH.

Jamess
sumber
Saya membuka etc / profile in vim dan tidak ada yang terkait dengan PATH di dalamnya. Terima kasih atas jawabannya.
Rob S.
17
Urutan eksekusi file adalah / etc / lingkungan -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess
mengedit / etc / profile path variable dapat merusak sistem dan lebih baik untuk dihindari. khususnya ketika Anda terhubung ke host jarak jauh melalui ssh.
AmirHossein Rezaei