Ortam değişkenlerini nerede belirtiriz?

53

Aşağıdakiler için doğru yerler nelerdir:

  1. Küresel ortam değişkenleri tüm kullanıcıları etkilemeyi mi?
  2. Kullanıcıya özgü ortam değişkenleri?
sordu Ivan 24.09.2010 05:39

4 cevap

15

bu 'nın ayrıştırmanıza yardımcı olacağını düşünüyorum

    
verilen cevap sagarchalise 24.09.2010 05:49
70

Sarkamanın cevabına eklemek için, bağlantının uygun yerler olarak önerdiği şeyleri özetleyebilirim.

Genel ayarlar için sistem çapında ortam değişkenleri

  • /etc/environment
  • kullan
  • /etc/profile veya /etc/bash.bashrc kullanma

Sayfadan:

  

/etc/environment [...] şudur   özellikle sistem genelinde   ortam değişken ayarları. Bu   betik dosyası değil, daha ziyade   atama ifadeleri, başına bir   hat. Özellikle, bu dosya depolar   sistem genelinde yerel ayar ve yol   ayarlar.

/etc/profile değerini kullanmak çok fazla bir Unix-y yoludur, ancak Ubuntu altında işlevselliği büyük ölçüde azaltılmıştır. Yalnızca /etc/bash.bashrc 'i işaret etmek ve /etc/profile.d ' den girişleri toplamak için var.

Sistemimde profil.d'deki tek ilginç giriş girişi /etc/profile.d/bash_completion.sh .

Yerel veya kullanıcı ayarları için

Ubuntu sayfasının önceki bir sürümü ~/.pam_environment önerilir, ancak şu anda bu sayfa işe yaramazsa

kullanmanız gerektiğini önerir.
  •   

    ~/.profile - Bu muhtemelen   çevre yerleştirmek için en iyi dosya   değişken atamalar, aldığından beri   tarafından otomatik olarak yürütülür   Başlangıç ​​sırasında DisplayManager   yanı sıra masaüstü oturumu işlem   Bir giriş-çıkış yaptığında giriş kabuğu   metin konsolu.

  • ~/.bash_profile veya ~./bash_login - Bunlardan biri varsa, bash, giriş kabuğu olarak bash başlatıldığında ~/.profile yerine onu çalıştırır. Bash, ~/.bash_profile ile ~/.bash_login değerini tercih edecektir. [...] Bu dosyalar varsayılan olarak grafiksel bir oturumu etkilemez. "

  • ~/.bashrc - "... değişkenleri belirleyen en kolay yer olabilir".
verilen cevap belacqua 14.02.2011 22:32
7

Elinizde var:

  

/ etc / profile: Bourne kabuğunun sistem genelinde .profile dosyası (sh (1))   ve Bourne uyumlu kabuklar (bash (1), ksh (1), kül (1), ...).

Lucid ve Maverick'de

/etc/profile.d/*.sh

Varsa ve kullanıcının kabuğu bash ise:

/etc/bash.bashrc

Kullanıcı ortamı için, kabuğa özgü kafa karıştırıcı bir dizi ve "giriş kabuğu" olarak kabul edilip edilmediğini. Kabuk bash ise:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bashrc
          The individual per-interactive-shell startup file

sh / dash için:

$HOME/.profile

zsh için, bunu anlamak için bile denemeyeceğim .

    
verilen cevap msw 24.09.2010 05:53
5

İşte 'de önerildiği gibi:

  1. Tüm kullanıcıları etkileyecek genel ortam değişkenleri /etc/environment dizinine gitmelidir.

  2. Kullanıcıya özgü ortam değişkenleri ~/.pam_environment olarak ayarlanmalıdır.

Ubuntu'da ortam değişkenlerini ayarlamak için profil ve rc dosyalarını kullanmaktan kaçının. Bana, değerinden daha fazla baş ağrısına neden oldular.

Bu, ancak yapıldığından daha kolay;)

Benim için var olan aynı konfigürasyon boşluğuna girebilmeniz mümkündür. Aşağıda şifrelenmiş ev için geçici çözüm bölümüne bakın.

~/.pam_environment :

PATH            DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK        DEFAULT=${HOME}/Applications/jdk

Neden çirkin statik yol? ${PATH} benim için çalışmaz. Oturum açmaya çalıştığım birkaç kez giriş yaptım, bu yüzden varsayılanın çirkin statik kopyasına yapışıyordum:)

Şifreli Ev Klasörleri için Geçici Çözüm

Şifrelenmiş bir giriş dizini kullanıyorsanız, 12.04 Beta 2'ye kadar Ubuntu sürümlerine dahil olmak üzere, /etc/pam.d/common-session dizinini yüklemek için ~/.pam_environment değerini değiştirmeniz gerekir. Bu çözüm, görünüşe göre daha önceki sürümler için çalışıyor, ancak ben test etmedim.

Guamher Montag (p-montag ile pam_env için çözüm) ) 2010-08-19 tarihinde yazdı:

  

Bu, şifreli giriş dizinleriyle ilgili bir sorun gibi görünüyor. Ekledim

     

oturum gerekli pam_env.so

     

/etc/pam.d/common-session sonunda ve şimdi ~ / .pam_environment okunuyor. Şifrelenmiş ev dizinleri olmayan başka bir sistemde (ayrıca 10.04) etraftaki çalışmalara gerek yoktur. Belki de benim durumumda, sistem şifresi çözülmeden önce ~ / .pam_environment okumayı dener.

Süper Kullanıcı'daki cevabımdan uyarlanmış: İşte

    
verilen cevap Alain O'Dea 04.04.2012 06:16

Etiketlerdeki diğer soruları oku