Bu yazıda açıklanan yöntemi, ortam değişkenlerini global olarak ayarlamak için "launchctl setenv" i çağırmak için kullanıyordum. OS X 10.11 "El Capitan" 'a henüz yeni geçtim ve şimdi launchctl komutunun iyi çalıştığını görüyorum, ancak asıl çevre üzerinde hiçbir etkisi olmadığı görülüyor. Örneğin, Eclipse altında çalışan bir "make" dosyasına girdiğim bazı hata ayıklama kodlarının çıktısı:
launchctl getenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/opt/ecos/gnutools/h8300-elf/bin:/opt/ecos/gnutool s/arm-elf/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin
echo "PATH = /usr/bin:/bin:/usr/sbin:/sbin"
PATH = /usr/bin:/bin:/usr/sbin:/sbin
Bana olanları bilen var mı? Şimdiden teşekkürler.
Aslında, makefile içinde bir "launchctl getenv PATH" ve "echo $ (PATH)" yaptım ve daha sonra çıktıyı kopyaladım / yapıştırdım, make'in yerine geçtiğini ve komut ile çıktı arasındaki satır beslemelerinin geldiğini fark etmedim. kayıp. Afedersiniz.
—
Philip Keller
Bu arada, sorunun "make" ten gelmediğini de doğruladım: Eclipse'nin "make" olan komutunu "printenv PATH" ile değiştirdim ve sonuç aynı. Eclipse'den de gelmiyor: Xcode'da bir getenv ("PATH") yapmak için hızlı bir komut satırı programı yazdım ve hata ayıklayıcı içinde çalıştırdım. Yolun Xcode tarafından değiştirildiğini gösterdi, ancak launchctl aracılığıyla uyguladığım değişiklikleri içermiyordu. Gerçekten "launchctl setenv" in kabul edildiğini, ancak El Capitan'da yok sayıldığını düşünmeye başladım.
—
Philip Keller
Yorumumun sivriği, bize asıl yolu göstermediğiniz
—
Mark
Komut: echo "PATH = $ (PATH)" idi ve çıktı: PATH = / usr / bin: / bin: / usr / sbin: / sbin
—
Philip Keller
echo $PATH
ve getenv yerine setenv mi demek istiyorsunuz