Apa tempat yang benar untuk:
- Variabel lingkungan global dimaksudkan untuk memengaruhi semua pengguna?
- Variabel lingkungan khusus pengguna?
Apa tempat yang benar untuk:
Saya pikir halaman wiki komunitas tentang variabel lingkungan akan membantu Anda memilah
Untuk menambah jawaban sagarchalise, saya dapat meringkas apa yang disarankan tautan sebagai tempat yang tepat untuk pengaturan.
Untuk pengaturan global, variabel lingkungan sistem-lebar
/etc/environment
/etc/profile
atau/etc/bash.bashrc
Dari halaman:
Menggunakan
/etc/profile
adalah cara yang sangat Unix-y untuk pergi, tetapi fungsinya sangat berkurang di bawah Ubuntu. Itu ada hanya untuk menunjuk/etc/bash.bashrc
dan mengumpulkan entri dari/etc/profile.d
.Di sistem saya, satu-satunya entri yang menarik di profile.d adalah
/etc/profile.d/bash_completion.sh
.Untuk pengaturan lokal atau per pengguna
Versi sebelumnya dari halaman Ubuntu direkomendasikan
~/.pam_environment
, tetapi halaman saat ini menyarankan bahwa jika itu tidak berhasil, Anda harus menggunakan~/.bash_profile
atau~./bash_login
- Jika salah satu dari ini ada, bash menjalankannya alih-alih~/.profile
ketika bash dimulai sebagai shell login. Bash akan lebih memilih~/.bash_profile
untuk~/.bash_login
. [...] File-file ini tidak akan mempengaruhi sesi grafis secara default. "~/.bashrc
- "... mungkin tempat termudah untuk mengatur variabel".sumber
/etc/environment
dan kapan? Tampaknya tidak bekerja dengan cron, bahkan ketika menggunakanSHELL=/bin/bash
/etc/environment
disukaiJAVA_HOME="/opt/java"
danANT_HOME="/opt/ant"
bagaimana melakukannyaKamu sudah memperoleh:
yang dijalankan oleh Lucid dan Maverick
jika ada, dan jika shell pengguna adalah bash:
Untuk lingkungan pengguna, ada array membingungkan khusus untuk shell dan apakah itu dianggap sebagai "shell login". Jika shell adalah bash:
untuk sh / dash:
untuk zsh, aku bahkan tidak akan mencoba memahami ini .
sumber
Seperti yang disarankan di https://help.ubuntu.com/community/EnvironmentVariables :
Variabel lingkungan global yang dimaksudkan untuk memengaruhi semua pengguna harus masuk
/etc/environment
.Variabel lingkungan khusus pengguna harus ditetapkan
~/.pam_environment
.Hindari file profil dan rc untuk mengatur variabel lingkungan di Ubuntu. Mereka telah menyebabkan saya sakit kepala lebih dari yang seharusnya.
Namun ini lebih mudah diucapkan daripada dilakukan;)
Mungkin saja Anda mengalami celah konfigurasi yang sama yang ada untuk saya. Lihat solusi untuk rumah terenkripsi di bawah ini.
Saya
~/.pam_environment
:Mengapa jalur statis jelek?
${PATH}
tidak akan bekerja untuk saya. Saya merusak login saya beberapa kali mencoba untuk mengatasinya jadi saya tetap dengan salinan statis default jelek :)Solusi untuk Folder Rumah Terenkripsi
Di Ubuntu, rilis hingga dan termasuk Precise 12.04 Beta 2, jika Anda menggunakan direktori home terenkripsi, Anda perlu memodifikasi
/etc/pam.d/common-session
untuk membuatnya dimuat~/.pam_environment
. Solusi ini tampaknya berfungsi untuk rilis sebelumnya, tetapi saya belum mengujinya.Guenther Montag (g-montag) menulis pada 2010-08-19:
Diadaptasi dari jawaban saya di Super User: https://superuser.com/a/408373/66856
sumber
${HOME}
tidak akan berhasil juga. Tidak ada ekspansi di.pam_environment
..pam_environment
, tetapiHOME
biasanya tidak diatur awal. Jika baris itu telah membacaDEFAULT=${PATH}/Applications/jdk
, Anda akan melihat nilai yangPATH
dimasukkan di dalamnya.