Aplikasi yang diluncurkan melalui Finder tampaknya tidak menghormati PATH sebagaimana diatur dalam .bash_profile
. Jadi ketika saya mencoba menjalankan kode dari IDE (Intellij) saya tidak lagi memiliki akses ke program /usr/local/bin
, yang biasanya ditambahkan ke jalur saya di Terminal.
Tampaknya .MacOSX/environment.plist
dulu cara untuk melakukan ini, tetapi tidak lagi berfungsi di Lion.
Bagaimana saya bisa mengatur PATH
aplikasi yang diluncurkan untuk Finder?
$PATH
untuk yang penting.)Jawaban:
Jika Anda menggunakan 10.7 dan bukan 10.8, solusi di bawah ini berfungsi dengan baik:
Saya memiliki masalah yang sama dengan gerhana, tetapi sekarang saya telah menambahkan misalnya berikut ini untuk saya
.bash_profile
dan kemudian berhasil.Jika Anda ingin tetap menggunakan jalur asli
sebagai gantinya (atau hanya
launchctl setenv PATH /my/new/path:$(launchctl getenv PATH)
).Catatan: Mengubah PATH launchctl tidak akan berlaku sampai Dock "restart". Proses Dock baru akan dimulai secara otomatis setelah yang saat ini dimatikan dengan perintah:
sumber
set|grep PATH
dari mereka akan selalu kembaliPATH=/usr/bin:/bin:/usr/sbin:/sbin
launchctl
:osascript -e 'tell app "Dock" to quit'
. Itu sepertinya memperbaikinya bagi saya.Untuk menjawab pertanyaan Anda terhadap masalah 'baru' Anda, saya telah memutuskan untuk menulis jawaban lain - karena lebih mudah dijelaskan dengan sampel.
Salah satu cara untuk memuat variabel lingkungan pada startup alat Anda (IDE) pilihan adalah seperti itu dapat dilakukan dengan eclipse - saya pikir harus ada struktur yang serupa di alat Anda (IDE) juga.
Bagaimana hal itu dapat dilakukan di eclipse - https://stackoverflow.com/questions/829749/launch-mac-eclipse-with-environment-variables-set
(sedikit ditulis ulang tentang variabel lingkungan)
Buat file teks kosong bernama "eclipse.sh" di direktori bundel aplikasi Eclipse
/Applications/eclipse/Eclipse.app/Contents/MacOS
Buka eclipse.sh di editor teks dan masukkan konten berikut:
Di Terminal, tentukan flag executable dari skrip shell eclipse.sh, yaitu:
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh
Buka Eclipse.app Info.plist dan ubah nilai untuk CFBundleExecutable kunci dari eclipse ke eclipse.sh.
MacOS X tidak secara otomatis mendeteksi bahwa Info.plist Eclipse.app telah berubah. Karena itu Anda perlu memaksa memperbarui database LaunchService di Terminal dengan menggunakan perintah lsregister:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
Lain kali Anda meluncurkan Eclipse.app dari Dock atau dari Finder variabel lingkungan harus ditetapkan.
sumber
Pada OS X 10.10 Yosemite, saya menggunakan perintah ini:
Ketahuilah bahwa ini menetapkan PATH launchtl untuk semua pengguna . Ini bekerja dengan baik untuk use case saya. Perhatikan bahwa Anda akan diminta untuk mem-boot ulang mesin Anda agar efeknya bertahan.
sumber
sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
dan reboot.environment.plist
dalam banyak kasus.Di Mountain Lion semua
/etc/paths
dan/etc/launchd.conf
pengeditan tidak berpengaruh!Forum Pengembang Apple mengatakan:
Jadi saya langsung mengedit aplikasi itu
Info.plist
(klik kanan pada "AppName.app" (dalam hal ini SourceTree) dan kemudian "Show package contents
")dan menambahkan pasangan kunci / dikte baru bernama:
(lihat: Dokumentasi LaunchServicesKeys di Apple )
sekarang App (dalam kasus saya SourceTree) menggunakan path yang diberikan dan bekerja dengan git 1.9.3 :-)
PS: Tentu saja Anda harus menyesuaikan entri Path dengan kebutuhan path spesifik Anda.
sumber
/etc/launchd.conf
. Agaknya, bahkan jika aturan tidak menyatakan bahwa aplikasi harus menggunakan file Info.plist mereka untuk jalur, mereka masih bisa menggunakan file lainnya -/etc/launchd.conf
,/etc/paths/
, atau/etc/paths.d/*
, atau `~ / .MacOSX / environment.plist. Apakah aman untuk mengatakan kemudian bahwa, dalam praktiknya , jalur untuk aplikasi GUI di Mountain Lion dapat disetel di salah satu file ini?/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
seperti yang diberikan dalam jawaban lain, setelah mengubah plist dan 2. menambahkan path lengkap di sana, Anda tidak dapat menggunakan PATH yang ada seperti pada skrip profil Anda.lsregister
perintah, seperti dicatat oleh @ JaakL.On Mountain Lion (10.8.4),
$PATH
diperlakukan secara khusus entah bagaimana.launchctl setenv PATH /your/path:/here
tidak memiliki efek apa pun pada$PATH
instance Terminal.app atau Emacs.app yang kemudian diluncurkan dari Dock atau dari Finder (sementaralaunchctl setenv SPONG foo
berfungsi dengan baik). Juga$HOME/.launchd.conf
tidak berfungsi./etc/launchd.conf
adalah satu-satunya cara yang saya temukan untuk mengatur PATH dengan benar di mana-mana. Sayangnya, salah satu tidak dapat menggunakan envars seperti$HOME
ada, sehingga semua pengguna di laptop saya memiliki/Users/nb/bin
di mereka$PATH
. Itu hanya saya, jadi saya tidak peduli.sumber
PATH
nilai yang Anda tetapkan, tetapi: ketika Anda membuat terminal baru itu memulai shell login, yang — jika Anda menggunakan bash — dijalankan/etc/profile
, yang menginisialisasiPATH
ke nilai yang dikembalikan dari/usr/libexec/path_helper
. Jika Anda memilih Shell> Perintah Baru ... dan menjalankanenv
(bukan di shell) Anda harus menemukan bahwa ituPATH
adalah nilai yang Anda tetapkan melalui launchd.Coba setel path di ~ / .profile atau ~ / .bash_profile atau ~ / .zprofile Anda (untuk zsh). Ini bekerja untuk saya dengan VimR - tidak membaca PATH ketika diluncurkan dari dermaga, tetapi bekerja ketika diluncurkan dari terminal. Saya sedang menjalankan OSX 10.11.
Saya tidak memiliki pegangan yang cukup baik dalam hal ini untuk memberi Anda penjelasan yang bagus tentang mengapa ia bekerja, ada banyak penjelasan online tentang berbagai file konfigurasi dan apa yang mereka lakukan: https://stackoverflow.com/questions/415403/ whats-the-perbedaan-antara-bashrc-bash-profil-dan-lingkungan
Juga, lihat diskusi serupa di sini: https://stackoverflow.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/ 24542893 # 24542893
sumber
Pada Mac OS X 10.8.4, Mountain Lion, lingkungan path menggabungkan jalur yang tercantum dalam file ini:
Anda dapat mengedit file ini menggunakan alat baris perintah, seperti
vim
menggunakan perintah berikut:sumber