Mountain Lion'da sistem ortam değişkenleri nerede belirlenir?


46

Aslan (ve önceki sürümlerde) içinde oldu .MacOSX/environment.plist. 10.8'e yükselttikten sonra, dosya hala orada, ancak değişkenler alınmıyor.

Bunları eklemeye de çalıştım /etc/launchd.confve Terminal'de görünecekler, ancak GUI uygulamaları (IDE'm gibi) görünmeyecek.


Değiştikten sonra yeniden başlattınız /etc/launchd.confmı?
nohillside

Yaptım ve buradaki tüm değişkenler herhangi bir terminalde mevcut, ancak IDE'mde mevcut değil.
Felix,

Belki IDE ortamı size göstermiyordur ( Cevabımı bakınız )? IDE nedir? doğrudan Finder veya Spotlight tarafından başlatılıyor mu?
halloleo

Yanıtlar:


22

Bu soruyu Apple Geliştirici Forumlarında da sordum ve bu resmi cevabı geri aldım.

İstediğiniz ortam değişkenleriyle birlikte bir "LSEnvironment" sözlüğü içerecek şekilde .app'ın Info.plist öğesini değiştirin.
~ / .MacOSX / environment.plist artık desteklenmiyor.


2
Bu nerede?
Orome

Daha spesifik bir örneğe link vermek faydalı olacaktır.
Blaisorblade

1
Güncelleme: Sözdizimi bulduktan sonra bu dosyayı değiştirmeyi denedim (sanırım), ama benim için hiç çalışmıyor.
Blaisorblade

4
WhatEver.app/Content/Info.plist içerisinde uygulama başına bir Info.plist bulunacaktır. XCode ile düzenleyebilirsiniz. Bilgi Özellik Listesinde "+" işaretini tıklayın ve LSEnvironment adlı bir sözlük ekleyin. Doğru yazarsanız, Ortam değişkenleri olarak yeniden adlandırılır. Sonra eklemek istediğiniz her ortam değişkeni için "+" işaretini tıklayın.
Felix,

2
Bu güzel bir çözüm, ancak artık Yosemite 10.10.5'ten itibaren çalışmıyor.
Dalmazio

21

Bunun eski bir soru olduğunu biliyorum ama Yosemite'de /etc/launchd.confartık çalışmadığını (man sayfasının onayladığı gibi) işaret edeceğimi düşündüm . Yani burada bir alternatif.

AppleScript Editor'ı başlatın, şöyle bir komut girin:

do shell script "launchctl setenv variablename value"

(istediğiniz kadar satır ekleyin)

Şimdi sıra (⌘S) kaydetmek Dosya formatı: Uygulama . Sonunda Sistem AyarlarıKullanıcılar ve GruplarGiriş Öğeleri'ni açın ve yeni uygulamanızı ekleyin.


Oturum açma öğesi olarak açılan diğer uygulamalarla ve belki de oturum açtıktan sonra hızlı bir şekilde açtıklarınızla çalışmayabileceğini ya da çalışmayabileceğini unutmayın
user151019

Bu benim için çalıştı. Çok teşekkür ederim. Bu bütün gün delirdi!
bütün gün

2
Şimdiye kadarki tek gerçek ve evrensel çözüme benziyor. Fakat yükselip ilk cevap olarak 9 taneye daha fazla oy alması gerekiyor. : c
Sarge Borsch

Bu benim için El Capitan'da çalıştı. Yukarıda @Mark tarafından belirtildiği gibi, sipariş ile ilgili sorunlar var (örneğin, devam ettirilen uygulamalar çevreye sahip olabilir veya olmayabilir), ancak bir kez bu şekilde beklediğiniz gibi bu şekilde giriş yapmışsınız. Yani, Spotlight veya Dock'tan başlatılan uygulamalar doğru ortama sahip.
Alec Thomas

@Mark Bu cevabı , Başlatıcı Ajanını kullanarak deneyebilirsiniz . Benim durumumda, Başlatıcı Ajan Oturum Açma Öğeleri'nden sonra başlar, bu nedenle hedef uygulamayı (Eclipse gibi) Oturum Açma Öğesinden Başlatma Ajanına taşıyorum, böylece bu özel uygulama ortamı değişkenlerinden sonra başlatılacaklar.
Franklin Yu,

10

Keşfettiğiniz gibi, environment.plist dosyasının kullanımına artık uyulmuyor , Info.plist'te LSEnvironment dizgileri olarak depolanan değişkenler yalnızca fırlatılarak belirlenir .

Programınızı doğrudan terminalden / kabuktan çağırırsanız, terminalin ayarlayacağı genel bir ortam değişkeni belirlemelerine güvenemezsiniz. İyi haber, open -akomutun başlatmayı başlatmak için başlatmayı tetiklemesidir, bu nedenle değişkenler yerel kabuk ortamı için değilse uygulama ortamı için tutarlı bir şekilde ayarlanır.


4

Ortam değişkenlerini ayarlamak /etc/launchd.confyoludur: Yerel mermiler tarafından yeniden başlatıldıktan sonra başlatılan her uygulama , Finder veya Spotlight bu değişkenleri miras alır - Bunu Mountain Lion 10.8.3 ile kapsamlı bir şekilde test ettim.

2 uyarılar:


1
/etc/launchd.confartık Yosemite’den beri desteklenmiyor. Bkz apple.stackexchange.com/questions/106355/...
Franklin Yu

3

Dene launchctl setenv NAME VALUE. launchd.Conf düzenlemesinden farklı olarak ne yaptığını / ne yaptığını bilmiyorum , ama hem Terminal hem de GUI uygulamalarında benim için çalışıyor. Daha fazla detay.

Bunun bir yeniden başlatma işleminde hayatta kalmadığını unutmayın. İşte bunu düzeltmenin bir yolu .


3
Bu, buraya bağlantı verdiğiniz oldukça uzun bir sayfa. İlgili kısım tam olarak nerede? Herkes için kolaylaştırmak için doğrudan cevabınıza ekleyebilir misiniz?
yokuş yukarı

2
ayy, iyi nokta, bu url’ye bir parça daha eklediğimi düşünmüştüm. sabit.
ryan

1
Orada verilen bir yeniden başlatma karşısında hayatta kalmanın yolu, Lion altında çalışmayı durduran çevreyi kullanır.
User
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.