Mac OS X ortam değişkenleri | Netgez.com
SORU
2 Mart 2009, PAZARTESİ


Mac OS X ortam deÄŸiÅŸkenleri

Güncelleme: link aşağıda tam bir cevap yok. İki yerde yol veya değişken (GUI ve kabuk) ayarlamak zorunda berbat.

Kopyası değil: http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x

Çok kolay olduğu bir Windows arka plan gelen ve değiştir ortam değişkenleri (sadece Sistem Özellikleri ^ gidin . Gelişmiş >Çevre Değişkenleri), yalındır Mac OS 10.5 için görünmüyor. En referanslar /profile ya da ~/etc /update etmem gerektiğini söylüyor.profil. Bu Sistem Değişkenleri ve Kullanıcı Değişkenleri eşdeğerdir? Örneğin, nerede benim JAVA_HOME değişkeni ayarlamak gerekir?

DÜZENLEME:

Terminalden değişkeni olarak Tutulması gibi bir uygulama erişmek mümkün olmak istiyorum. Ayrıca,/çıkış bu etkili olması için yeniden başlatmak zorunda kalmayız.

CEVAP
31 Aralık 2010, Cuma


Ortam değişkenleri ayarlayabilirsiniz birkaç yer vardır.

  • ~/.profile: Tüm Programlar baÅŸlattı ayarlamak istediÄŸiniz deÄŸiÅŸkenleri terminal (Linux aksine, bütün kabukları Terminal açıldı.unutmayın için bunu kullanın giriÅŸ kabukları uygulama).
  • ~/.bashrc: Bu kabukları giriÅŸ olmayan kabuklar için çaÄŸrılır. Devralınan ortam deÄŸiÅŸkenleri için atom ABSTRACT deÄŸil gereken kod adları ve diÄŸer ÅŸeyler için bunu kullanın.
  • /etc/profile: Bu ~/önce yüklenir.profil, ama aksi takdirde eÅŸdeÄŸerdir. DeÄŸiÅŸken terminal programları makinedeki tüm kullanıcılar (bash kullanmak varsayarak) tarafından baÅŸlatılan uygulamak istediÄŸiniz zaman kullanabilirsiniz.
  • ~/.MacOSX/environment.plist: Bu oturum açma loginwindow tarafından okunur. Tüm uygulamaları, GUI olanlar, o 10.5 servisleri tarafından baÅŸlatılan (10.6) hariç olmak üzere uygulanır. Sen çık gerektirir ve daha etkili olması için deÄŸiÅŸiklikleri için giriÅŸ. Bu dosya artık OS X 10.8 olarak desteklenmektedir.
  • kullanıcı launchd örnek: bu programlar kullanıcı arayüzü ve CLİ baÅŸlattığı için geçerlidir. launchctl setenv komutunu kullanarak herhangi bir zamanda deÄŸiÅŸiklikler uygulayabilirsiniz.Teoridegerekir koymak setenv komutları ~/.launchd.conf launchd olur oku bunları otomatik olarak ne zaman kullanıcı günlükleri, ama uygulamada destek için bu dosya asla uygulanmaktadır. Bunun yerine baÅŸka bir mekanizma oturum açma komut dosyası yürütmek için kullanın, ve komut dosyası launchctl launchd ortam ayarlamak için arama yapabilirsiniz.
  • Bu sistem baÅŸlatıldığında launchd tarafından okunur ve bir kullanıcı oturum açtığında. /etc/launchd.conf: Launchd kök süreçtir çünkü sistemde her süreci etkiler. Çalışan kök deÄŸiÅŸiklikleri uygulamak için sudo launchctl komutları yöneltme launchd.

Anlamak için temel şeyler vardır:

  • ortam deÄŸiÅŸkenleri çatallı anda bir sürecin çocuklar tarafından devralınmıştır.
  • root iÅŸlemi launchd bir örneÄŸidir ve aynı zamanda kullanıcı her oturum için ayrı launchd bir örneÄŸi yok.
  • launchd deÄŸiÅŸkenleri launchctl; güncelleÅŸtirilmiÅŸ deÄŸiÅŸkenleri kullanarak o günden sonra, bu Çatallar tüm yeni iÅŸlemler tarafından devralınan mevcut ortamı deÄŸiÅŸtirmek için izin verir.

Bir çevre launchd ile değişken ayarlama örneği:

echo setenv REPLACE_WITH_VAR REPLACE_WITH_VALUE | launchctl

Şimdi, değişken kullanan bir GUI uygulaması başlatmak, ve voila!

~/.launchd.conf çalışmıyor aslında geçici bir çözüm bulmak için, ~/Library/LaunchAgents/local.launchd.conf.plist aşağıdaki komut koyabilirsiniz:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>local.launchd.conf</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl < ~/.launchd.conf</string>    
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Ardından ~/.launchd.conf içinde setenv REPLACE_WITH_VAR REPLACE_WITH_VALUE koyabilirsiniz ve her girişte uygulanacak.

Bu şekilde launchctl içine bir komut listesi boru, boşluk içeren değerleri ile çevre değişkenlerini ayarlamak için mümkün olmayacaktır unutmayın. Eğer bunu yapmak istiyorsanız, launchctl arayabilirsiniz şöyle: launchctl setenv MYVARIABLE "QUOTE THE STRING".

Ayrıca girişte çalışan diğer programlar launchagent önce idam olabileceğini unutmayın, ve böylece ortaya koyuyor.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008