mengubah / etc / environment tidak mempengaruhi variabel lingkungan saya

10

Saya mencoba menginstal sistem pakar Euler mengikuti petunjuk ini . Untuk menambahkan variabel lingkungan saya mengedit saya /etc/environmentmenjadi sebagai berikut:

 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"

Tetapi ketika saya menggunakan printenv PATHsaya tidak melihat direktori baru ditambahkan ke jalur saya.

Apa yang saya lakukan salah di sini?

Moha unta yang mahakuasa
sumber
Tautan itu tidak berfungsi sekarang (SourceForge sedang mati) tetapi dapatkah Anda menentukan apakah Anda ingin variabel lingkungan sistem-lebar? Karena ini untuk aplikasi, ini kemungkinan terjadi, dan karena itu banyak jawaban di bawah ini salah.
Michael Scheper

Jawaban:

8

Saya tidak tahu alasan mengapa PATH tidak diubah (setelah relogin), tetapi

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

ruang-ruang tersebut mencegah EYE_HOME diatur.

Perlu dicatat bahwa /etc/environmentini bukan file skrip, tetapi semacam file tugas yang dibaca oleh PAM. OTOH ruang seperti itu tidak diperbolehkan dalam file skrip seperti /etc/profiledan ~/.profilejuga.

Jika Anda menggunakan file skrip, Anda perlu mengekspor variabel seperti yang ditunjukkan dalam jawaban Avinash Raj.

Harap dicatat bahwa sementara ~/.bashrcberfungsi jika Anda memulai program Anda dari jendela terminal, itu mungkin tidak berfungsi jika Anda memulainya dari lingkungan grafis, karena itu tidak bersumber dari manajer tampilan.

Gunnar Hjalmarsson
sumber
@ gunnar-hijalmarsson --- benar. Fakta bahwa manajer tampilan tidak dimulai dari shell saya menggigit saya berkali-kali. Saya telah memposting trik untuk melihat variabel yang diatur dalam DE: askubuntu.com/a/356973/16395
Rmano
Trik yang bagus, @Rmano! Setiap peluang yang dapat Anda tambahkan ke help.ubuntu.com/community/EnvironmentVariables ?
Gunnar Hjalmarsson
Terima kasih - saya tidak pernah mengeditnya dan saya tidak tahu apakah saya memiliki izin. Saya akan memeriksanya jika saya punya waktu, tetapi jika tidak merasa bebas untuk menyalin / menempelkan apa pun yang Anda inginkan --- halaman itu perlu diperbarui. Satu pertanyaan: apakah semua manajer tampilan (lightdm, gdm, kdm) sumber ~/.profilebahkan jika shell default saya tidak bashtetapi, misalnya zsh,?
Rmano
Diperiksa sendiri. Saya menggunakan zsh; aplikasi yang diluncurkan oleh DE melihat variabel yang diatur dalam ~/.pam_environmentdan ~/.profile(TIDAK ~/.zprofile). Ini baik dan buruk, tetapi bagian yang buruk diselesaikan dengan mengubah .profilesehingga sumber saya .zprofiledan .zshenv. Dan saya mengkonfirmasi bahwa menggunakan .pam_environmentitu buruk, kadang-kadang ditimpa (seharusnya tidak, tetapi itu).
Rmano
@Rmano: Saya tahu bahwa ~/.profileini bersumber dari lightdm dan gdm; tidak yakin tentang kdm.
Gunnar Hjalmarsson
5
gedit ~/.bashrc

Setelah itu tambahkan baris di bawah ini,

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

Simpan file dan buat itu,

source ~/.bashrc
Avinash Raj
sumber
1
apakah itu variabel sistem yang luas?
Moha the maha besar unta
1
@AvinashRaj: variabel ini tidak hanya akan menjadi pengguna saja, tetapi mereka tidak akan terlihat jika aplikasi tidak dimulai dari terminal baris perintah ... lingkungan grafis dimulai dengan sendirinya, tidak menggunakan shell pengguna. Lihat askubuntu.com/a/356973/16395
Rmano
0

Anda dapat mencoba kedua file ini juga untuk konfigurasi sistem:

  • /etc/profile
  • /etc/bashrc

Untuk konfigurasi lebar pengguna:

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

Cukup tambahkan variabel seperti yang telah Anda lakukan /etc/environment. Tetapi Anda harus masuk dan keluar (atau menjalankan ulang yang benar). Mungkin dengan masuk dan keluar /etc/environmentakan berhasil tetapi saya tidak yakin.

Tinti
sumber
-1

Anda ingin mengedit file .bashrc Anda di direktori home Anda.

Saat Anda mengedit jalur, Anda harus memasukkan :$PATHdi akhir sehingga Anda tidak mengganti jalur saat ini.

Julian Stirling
sumber