Bagaimana cara menggunakan /etc/paths.d untuk menambahkan file yang dapat dieksekusi ke jalur saya?


15

Saya mencoba menggunakan /etc/paths.d untuk menambahkan executable ke variabel path saya, tetapi sejauh ini saya belum berhasil.

Path lengkap file yang dapat dieksekusi adalah: /opt/ImageMagick/bin/convert

/etc/paths.d berisi dua file: 40-XQuartz dan ImageMagick

40-XQuartz berisi satu baris: /opt/X11/bin
ImageMagick berisi satu baris:/opt/ImageMagick/bin

Saya echo $PATHmemberi:

/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

Jadi sepertinya hanya file pertama (40-XQuartz) yang melakukan tugasnya. Izin kedua file (40-XQuartz dan ImageMagick) persis sama, jadi pertanyaan saya adalah mengapa yang pertama berfungsi dan yang kedua tidak.

Saya menjalankan OS X Mavericks.


Shell apa yang Anda gunakan? Bagaimana dengan / etc / paths?
Max Ried

Menambahkan kaku untuk /etc/paths.dbekerja untuk saya, tapi saya me-restart aplikasi terminal apa pun yang saya gunakan (ITerm2 dalam kasus saya) agar jalan baru mulai berlaku
user1256923

Jawaban:


17

Sudahkah Anda memulai shell login baru sejak menambahkan file baru untuk ImageMagick? Pengaturan jalur dari paths.dentri dilakukan di /etc/profiledan /etc/csh.login, jadi Anda perlu memulai shell baru agar entri baru berlaku.

OS X menggunakan path_helperuntuk mengatur path berdasarkan file di /etc/paths.d- Anda selalu dapat menyebutnya secara manual (dengan asumsi shell seperti Bourne di sini):

$ eval `/usr/libexec/path_helper -s`

Tentu saja saya sudah memulai shell baru. Saya bahkan me-restart mac saya.
skiabox

shell login baru berfungsi untuk saya
incandescentman

3

Lari

echo /opt/ImageMagick/bin|sudo tee /etc/paths.d/ImageMagick;bash -l;echo $PATH

menambahkan /opt/ImageMagick/binuntuk PATHdi instalasi saya.

Apakah Anda mengesampingkan PATHdi tempat lain seperti ~/.bash_profile?

Jalan di /etc/paths.d/ditambahkan ke jalan oleh /usr/libexec/path_helper, yang dijalankan dari /etc/profile, /etc/zsh.env, dan /etc/csh.login. path_helpertidak dijalankan oleh aplikasi grafis atau ketika bash dipanggil sebagai shell non-login.

Anda juga dapat mengatur default PATHdi /etc/launchd.conf:

  1. Jalankan misalnya setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.conf.
  2. Mulai ulang, atau jalankan launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.confdan jalankan kembali proses.

Saya lebih suka mengubah jalur /etc/launchd.conf, karena juga mempengaruhi program yang tidak dimulai dari shell, seperti editor teks dan program yang dimulai oleh launchd jobs.


0

Luar biasa, saya hanya bermain-main dengan menambahkan ImageMagic ke Mac saya. Anda tidak hanya membutuhkan ImageMagick/bindi PATH, Anda juga memerlukan set variabel lingkungan, atau ditambahkan ke:

Untuk menguji Anda dapat membuatnya secara manual dengan:

export DYLD_LIBRARY=".:/opt/ImageMagic/lib"

Informasi untuk pengaturan variabel lingkungan untuk Mac OS dapat ditemukan di sini, Mengatur variabel lingkungan di OS X?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.