it-swarm.asia

$ PATH, OS X 10.6 Snow Leopard'da nerede belirlenir?

Komut satırına echo $PATH yazıp alıyorum

/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

.bash_login dosyam boş olduğundan bunun nereden ayarlandığını merak ediyorum.

MacPorts'u kurduktan sonra, /opt içine bir sürü hurda yerleştirmesinden özellikle endişe duyuyorum. Bu dizinin normal bir Mac OS X kurulumunda bile olduğunu sanmıyorum.

Update: jtimberman sayesinde benim echo $PATH ifademi düzeltmek için /

134
Andrew

bash başladığında, her giriş yaptığınızda aşağıdaki dosyaları okur. OS X'in amaçları için bu, her zaman __Terminal penceresini her açışınızda anlamına gelir.

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

Komut satırında bash yazarak yeni bir Shell başlattığınızda, .bashrc okur

OS X ayrıca, gerekirse yollar dahil olmak üzere daha fazla ortam değişkeni ayarlamak için ~/.MacOSX/environment.plist öğesini kullanır.

Son olarak, /etc/paths ve /etc/paths.d da Shell tarafından okunur.


/opt/local/bin vs. MacPorts tarafından ~/.tcshrc içine eklenir. Ayrıca ~/.cshrc 'ye de bakın.

157
Steve Folly

/etc/paths tarafından kullanılan /usr/libexec/path_helper tarafından kullanılan /etc/profile dosyasına bakın.

MacPorts için Sudo /etc/paths/opt/local/bin kullanın ve terminal penceresini yeniden açın.

47
Jim Logan

Cidden, Leopard bize yol eklemek için yeni bir yol verdi. Eklemek istediğiniz yol bölümünü içeren bir dosya oluşturun ve /etc/paths.d içine koyun.

Bunu bir adımda yapmanın hızlı bir örneği:

echo "/some/path/to/add" >> /etc/paths.d/somefilename

Aksi takdirde, /etc/paths.d dosyasına gidip dosyayı doğrudan buraya koyabilirsiniz. Her iki durumda da, bu dizindeki dosyalardaki yol parçaları varsayılan yola eklenecektir.

Bu aynı zamanda manpat için de geçerlidir.

İşte daha fazla ayrıntıya bir link:

ars technica: Nasıl kar leoparı PATH bir şey eklerim?

2. notta: MacPorts her şeyi tam olarak opt dizine koyar, çünkü Apple tarafından kullanılmaz. Bu şekilde çatışma olmaz. Rehberleri (mükemmel yazılmış, BTW) neden opt kullandığını ve isterseniz varsayılanın nasıl değiştirileceğini açıklar.

MacPorts Kılavuzu

25
leanne

Yolunu göstermek için, $ PATH echo.

echo $PATH

Yolunuzu ayarlamak için, ~/.bash_profile adresini değil ~/.bash_login dosyasını düzenleyin.

4
jtimberman

Ayrıca ssh tarafından belirlenen yol var.

echo $PATH ile ssh localhost 'echo $PATH' öğesini karşılaştırın. Ssh/etc/profile yazmıyorsa,/usr/libexec/path_helper çalışmaz ve/etc/pathts atlanır. Şimdi ssh localhost 'source /etc/profile; echo $PATH' adresini deneyin. Yollar daha yakın olmalı. Kalan farklar büyük olasılıkla .bash_profile (ssh ile de atlanır) ve .bashrc'deki (ssh ile okundu) yol değişikliklerinden kaynaklanıyor olabilir.

Ssh yolunuzun normal terminal yolunuza benzemesini istiyorsanız .bashrc'nize source /etc/profile ekleyebilirsiniz.

3
Keith Bentrup

Her ikisinde de tanımlanabilir:

  • Sistem değişkenleri - /etc/paths
  • Kullanıcı değişkenleri - bkz. @Steve Folly'nin açıklaması
2
ericn

Aslında .profile yerine .bash_login dosyanızda depolanır ve MacPorts'un bunu .bash_login dosyası yerine kullanması yaygındır.

Ayrıca /opt dizini genellikle MacPorts tarafından oluşturulur ve dosyalarını bu klasörde saklar.

1
ricbax

docs için /usr/libexec/path_helper yardımcı programı için, $ PATH için ilk bileşenler /etc/paths'dan alınmıştır ve varsayılan olarak

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

oS-X Kar Leoparı için

1
A B