PATH ortam değişkenini GUI uygulamalarında görülebilecek OS X 10.8 Mountain Lion olarak nasıl değiştirebilirim? [çiftleme]


14

OS X 10.8'de ortam değişkenlerini ayarlamak için duyduğum tüm yöntemleri denedim ama hiçbiri işe yaramıyor.

Test etmek için Eclipse veya IntelliJ IDEA gibi bir gui uygulamasının içinden bir bash betiği çalıştırın.

#!/bin/bash
set|grep PATH

Test ettiğim ve yeniden başlattıktan sonra bile çalışmayan şeyler :

  • /etc/paths ve /etc/paths.d/something
  • /etc/launchd.conf
  • ~/.bash_profile
  • ~/.MacOSX/environment.plist (önerilen şekilde yapılmış ikili plist)
  • launchctl setenv PATH $PATHkomut satırından çalıştırıldığında , bunun en azından geçerli oturum için GUI uygulamaları için PATH'yi güncellemesi gerekiyordu. Bil bakalım ne oldu, değişiklik yok.

Görünüşe göre PATH her zaman PATH=/usr/bin:/bin:/usr/sbin:/sbinGUI uygulamaları için.


Bash yolunu ayarlayan bir çözüme sahip misiniz veya gerçekten tüm süreçler için launchd'ın temel yol değerini değiştirmeniz gerekiyor mu?
bmike

GUI uygulamaları tarafından kullanılan PATH'i değiştirmem gerekiyor, terminal / bash / ... Zaten çok sayıda çalışma çözümüm var.
sorin

Tutulma ve diğerlerinin neden sadece çalışma zamanı ortam değişkenlerini desteklemediğini bilmiyorum, bu yüzden Mac'teki her java geliştiricisi, her projede yolu veya kaynakların istenen değişkenlerinde kaynak bulma konusunda endişelenmesine gerek yok.
bmike

Yanıtlar:


8

Mountain Lion /etc/launchd.confile GUI uygulamaları Yolu ayarlamanız gereken yerdir. Bunun bir komut dosyası olmadığını unutmayın; sadece launchctlkomutları destekler, böylece şöyle bir şey yazmalısınız:

setenv PATH /new/path:/usr/bin:/bin:/usr/sbin:/sbin

Ayrıca kabuk ortamı değişkeni değişikliklerini (gibi $PATH) desteklemediğini de unutmayın, böylece eklemek istediğiniz her yolu ayarlamanız gerekir. Bahsettiğiniz orijinal yolları korumak iyi bir fikirdir ( /usr/bin:/bin:/usr/sbin:/sbin).

Değişikliklerin etkili olması için dosyayı değiştirdikten (veya oluşturduktan) sonra yeniden başlatmanız gerekir.


Bu benim için 10.8.2'de Keyboard Maestro ile kullanılabilen bir PATH ayarlamak için çalıştı.
TJ Luoma

Man sayfası $ HOME / .launchd.conf kullanabileceğinizi söylüyor ancak bu benim için çalışmadı. /Etc/launchd.conf kullanarak yaptı. 10.8.4
pedz

Benim için çalışmıyor:-bash: setenv: command not found
Colas

Eğer birisi Colas gibi kafanız karışmışsa, setenvbu bir launchctlkomuttur, yani onu kullanırsınız launchctl setenv.
Jon Shier

3

GUI uygulamasını Terminal'den çağırırsanız çalışır:

PATH=/this/is/kind/of/crazy:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /Applications/Automator.app/Contents/MacOS/Automator 

resim açıklamasını buraya girin

Gerçekten güzel ya da rahat değil ama gerekirse iş yapar.


Kısaca YOK YOK. Bunu yapmak istemiyorum, sadece bazen işe yarayacak. Uygulama, bir dosyayı tıkladığınızda da başlatılabilir.
sorin

2
Ben gerçekten güzel değil ama (çünkü Apple sorunu giderir kadar çalışabilirler söylediği gibi olmalıdır launchctl ile mümkün).
nohillside

2

Burada patrix birinden esinlenerek umarım biraz daha az acı veren başka bir çözüm hazırladım . Açın Automator, hedef olarak bir uygulama seçin ve Execute Shell scripteylem olarak seçin (ya da her ne denirse Almanca olarak "Shell-Skript ausführen" dir). Komut dosyasına şunu yazın:

launchctl setenv FOO1 bar1
[...]
launchctl setenv FOOn barn
open -a YourApplicationHere

Sonra her şeyi istediğiniz yere kaydedin ve Uygulamanızı burada çalıştırmanız gerekiyorsa , bunun yerine oluşturulan "automator uygulamasını" açın.

Ben bu test Terminalolarak YourApplicationHere ve birlikte testere launchctl exporto FAN gerçekten ayarlandı bar . Umarım başkaları için de çalışır.

Son olarak, bu çözümü ortam değişkenleriniz için kullanırsanız launchctl, kabuk komut dosyasına bir şeyler yazmak yerine, yalnızca çağırabilirsiniz /Users/Shared/conflaunchd.sh(değişkenleri tanımlayan dosyayla birlikte ilk önce yapmanız gerekir).


-1

Sözde, launchctlsağlar PATHGUI Apps. Kabuk yolunun yolunu ayarlamak için, yolunuzu ayarladıktan sonra kabuk rc dosyanıza aşağıdakileri ekleyin:

launchctl setenv PATH $PATH

1
Ne yazık ki bu işe yaramaz :-(
nohillside


Soruyu ele almak için iyi niyetle çaba gösteren cevaplara izin veriyoruz. Yanlış cevaplara bile izin veriyoruz ve oylamanın doğruluk için konuşmasına izin veriyoruz. Kişiselleştirmeden yorum yapmak, cevaplama girişimlerini caydırmak yerine hatalı bir tartışmada bir delik açmanın en iyi yoludur.
bmike
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.