Dari mana $ PATHS saya berasal di osx? [duplikat]

0

Pertanyaan ini sudah ada jawabannya di sini:

Saya TAHU pertanyaan ini semacam duplikasi, tapi saya pikir masalah saya sedikit berbeda dari pertanyaan lain yang saya temukan di sini.

Jika saya menggemakan $ PATH, saya dapat melihat string biasa dengan beberapa jalur. Baik. Tetapi saya tidak dapat menemukan di mana mereka benar-benar ditulis (setidaknya tidak semua):

/ private / etc / profile:

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

/ private / etc / paths: (ada beberapa tapi tidak semua bisa saya lihat dari gema !!!)

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

~ / .bash_profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

~ / .bashrc

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

Dan saya saat ini tidak memiliki file ~ / .profile.

Saya bukan ahli unix sama sekali. Saya tidak dapat memahami dari mana semua jalur berasal dan di mana tempat terbaik untuk menambah atau memodifikasi.

Bisakah Anda menyarankan saya sesuatu? :)

Luca Reghellin
sumber

Jawaban:

0

Sumber Menguasai utilitas path_helper dari MacOSX

Ditujukan untuk menyederhanakan manajemen jalur, path_helper, alat baru   diperkenalkan di Leopard yang membantu mengelola PATH variabel lingkungan,   mungkin tidak disambut seperti seharusnya, khususnya   karena tidak terdokumentasi dengan baik. Kami mencoba menjelaskan ini   alat yang tidak jelas.

path_helper terletak di /usr/libexec. Dengan sendirinya, alat ini   tidak berbahaya, karena itu tidak mengubah apa pun di lingkungan Anda, itu   hanya a bash atau csh perintah generator untuk membangun PATH dan MANPATH variabel lingkungan berdasarkan pada beberapa file teks yang terletak di /etc. Jadi, cobalah!

Lebih dari seribu kata, mari kita jalankan:

$ /usr/libexec/path_helper
PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/apache-maven/apache-maven-2.0.9/bin"; export PATH
MANPATH="/usr/share/man:/usr/local/share/man:/usr/X11/man"; export MANPATH

Perintah yang dikeluarkannya tidak dieksekusi kecuali Anda memanggilnya sama   perintah dalam sebuah eval seperti apa yang dilakukan di Internet /etc/profile, yang mana   skrip startup default untuk bash kulit:

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

Tapi, bagaimana cara membangun jalur ini?

  • Itu path_helper utilitas membaca isi file dalam direktori /etc/paths.d dan /etc/manpaths.d dan menambahkan mereka   isi ke PATH dan MANPATH variabel lingkungan masing-masing.
  • File dalam direktori ini harus mengandung satu elemen jalur per baris.

Dalam contoh Anda /private/etc/profile kamu punya:

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

Lihat kedalam /etc/paths.d untuk melihat elemen path apa yang ditambahkan dari file ini.

Untuk informasi lebih lanjut lihat halaman manual

DavidPostill
sumber