Saya mengetik echo $PATH
di baris perintah dan dapatkan
/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin
Saya bertanya-tanya di mana ini diatur karena .bash_login
file saya kosong.
Saya sangat khawatir bahwa, setelah menginstal MacPorts, ia menginstal banyak sampah di /opt
. Saya tidak berpikir direktori itu ada di instalasi Mac OS X normal.
Pembaruan: Terima kasih kepada jtimberman karena mengoreksi echo $PATH
pernyataan saya
macos
command-line
osx-snow-leopard
bash
path
Andrew
sumber
sumber
easiest solution when you want to make a site-wide path change (e.g. to include /usr/libexec or whatever) is to edit
/etc/paths
. While the new
/etc/paths.d/
thing is functional, it's actually more hassle than maintaining a single file. As others have hinted but not spelled out, if the path changes you want would be useful only for one user, it's best to make that change in the bash and/or tcsh config files in that user's home directory instead of system-wide.
/etc/paths.d
berguna untuk skrip instalasi. Jika saya ingin skrip instalasi saya menambahkan program yang diinstal ke path, saya bisa memasukkan file/etc/paths.d
. Jika saya ingin mengedit jalur secara manual,/etc/paths
adalah opsi yang lebih baik.Jawaban:
Ketika
bash
mulai membaca file-file berikut setiap kali Anda login. Untuk keperluan OS X, ini berarti setiap kali Anda membukaTerminal
jendela baru .Saat Anda memulai shell baru dengan mengetik
bash
pada baris perintah, itu berbunyi.bashrc
OS X juga digunakan
~/.MacOSX/environment.plist
untuk mengatur lebih banyak variabel lingkungan, termasuk jalur jika perlu.Akhirnya,
/etc/paths
dan/etc/paths.d
dibaca oleh shell juga./opt/local/bin
dll. ditambahkan~/.tcshrc
oleh MacPorts. Pastikan juga untuk melihat~/.cshrc
.sumber
~/.MacOSX/environment.plist
tidak berfungsi untuk sebagian orang. Di Ubah Jalur untuk OS X alternatif dengan menggunakan folder/etc/paths.d
dijelaskan. Saya belum mengujinya.~/.cshrc
. Pergi gila mencoba mencari tahu mengapa~/.profile
tidak berhasil..bashrc
sudah dibaca terlepas dari apakah Anda mengetikbash
atau tidak.Lihatlah file
/etc/paths
, yang digunakan oleh/usr/libexec/path_helper
, yang digunakan oleh/etc/profile
.Untuk MacPorts, gunakan
sudo /etc/paths/opt/local/bin
dan buka kembali jendela terminal.sumber
Serius, Leopard memberi kami cara baru untuk menambahkan path. Cukup buat file yang berisi bagian path yang ingin Anda tambahkan, dan letakkan di /etc/paths.d
Contoh cepat melakukan ini dalam satu langkah adalah:
Jika tidak, Anda bisa langsung ke /etc/paths.d dan meletakkan file di sana secara langsung. Either way, setiap bagian jalur dalam file di direktori itu akan ditambahkan ke jalur default.
Ini juga berfungsi untuk manpath.
Berikut tautan ke detail lebih lanjut:
ars technica: bagaimana cara menambahkan sesuatu ke PATH di macan tutul salju?
Pada catatan kedua: MacPorts menempatkan semuanya ke dalam direktori opt justru karena itu tidak digunakan oleh barang-barang Apple. Dengan begitu tidak akan konflik. Panduan mereka (ditulis dengan sangat baik, BTW) memiliki penjelasan tentang mengapa menggunakan opt dan bagaimana mengubah default itu jika Anda mau.
Panduan MacPorts
sumber
I have to concur that there's nothing weird or bad about MacPorts using
/opt
(likewise Fink uses /sw); trying to replace stock Mac BSD parts with bleeding-edge builds from external projects like these is a recipe for an unusable system that requires an OS reinstallation.
Untuk menunjukkan jalur Anda, gema $ PATH.
Untuk mengatur jalur Anda, edit
~/.bash_profile
, bukan~/.bash_login
.sumber
Ada juga jalan yang ditentukan oleh ssh .
Bandingkan
echo $PATH
denganssh localhost 'echo $PATH'
. Karena ssh tidak membaca / etc / profile, / usr / libexec / path_helper tidak berjalan dan dengan demikian / etc / path dilewati. Sekarang cobassh localhost 'source /etc/profile; echo $PATH'
. Jalan harus lebih dekat. Perbedaan yang tersisa kemungkinan disebabkan oleh modifikasi path di .bash_profile Anda (yang juga dilewati oleh ssh) dan .bashrc (yang dibaca oleh ssh).Jika Anda ingin jalur ssh Anda mirip dengan jalur terminal normal, Anda bisa menambahkan
source /etc/profile
.bashrc Anda.sumber
Itu dapat didefinisikan dalam:
/etc/paths
sumber
Sebenarnya itu disimpan dalam
.profile
file Anda dan bukan.bash_login
dan itu umum bahwa MacPorts akan menggunakan ini bukan.bash_login
file.Juga The
/opt
direktori biasanya diciptakan oleh MacPorts dan menyimpan file dalam folder ini.sumber
Mengenai dokumen untuk
/usr/libexec/path_helper
utilitas, komponen awal untuk $ PATH diambil dari/etc/paths
dan secara default sepertiuntuk OS-X Snow Leopard
sumber