Як за допомогою /etc/paths.d додати виконувані файли до мого шляху?


15

Я намагаюся використовувати /etc/paths.d, щоб додати виконуваний файл до моєї змінної шляху, але поки що у мене немає успіху.

Повний шлях виконуваного файлу: /opt/ImageMagick/bin/convert

/etc/paths.d містить два файли: 40-XQuartz та ImageMagick

40-XQuartz містить один рядок: /opt/X11/bin
ImageMagick містить один рядок:/opt/ImageMagick/bin

Мої echo $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:/usr/local/bin:/opt/X11/bin

Тож здається, що лише перший файл (40-XQuartz) виконує свою роботу. Дозволи на два файли (40-XQuartz та ImageMagick) абсолютно однакові, тому моє питання, чому перший працює, а другий - ні.

Я запускаю OS X Mavericks.


Яку оболонку ви використовуєте? Про що / etc / paths?
Макс Рід

Додавання жорсткої /etc/paths.dроботи для мене, але я перезапускаю будь-яку термінальну програму, яку я використовую (ITerm2 у моєму випадку), щоб новий шлях
набрав

Відповіді:


17

Ви запустили нову оболонку входу з моменту додавання нового файлу для ImageMagick? Встановлення шляху від paths.dзаписів виконується в, /etc/profileі /etc/csh.loginтому вам потрібно запустити нову оболонку, щоб нові записи набули чинності.

OS X використовує path_helperдля встановлення шляху на основі файлів у /etc/paths.d- ви завжди можете викликати його вручну (припускаючи оболонку, подібну до Bourne):

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

Звичайно, я почав нову оболонку. Я навіть перезапустив Mac.
skiabox

для мене працювала нова оболонка для входу
лампа розжарювання

3

Біг

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

додає /opt/ImageMagick/binдо PATHмоєї установки.

Чи переважаєте ви PATHв якомусь іншому місці, як ~/.bash_profile?

Шляхи в /etc/paths.d/додаванні до шляху з допомогою /usr/libexec/path_helper, яка запускається з /etc/profile, /etc/zsh.env, і /etc/csh.login. path_helperне запускається графічними програмами або коли bash викликається оболонкою без входу.

Ви також можете встановити за замовчуванням PATHу /etc/launchd.conf:

  1. Запустити, наприклад 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. Або перезапустіть, або запустіть launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.confі перезавантажте процеси.

Я вважаю за краще змінити шлях /etc/launchd.conf, оскільки це також впливає на програми, які не запускаються з оболонок, як текстові редактори та програми, запущені запущеними завданнями.


0

Дивовижно, я просто грав, додаючи ImageMagic до свого Mac. Вам не тільки потрібно ImageMagick/binу вашому PATH, але вам також потрібен набір змінної середовища або доданий до:

Для тестування ви можете створити його вручну за допомогою:

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

Інформацію про налаштування змінної середовища для Mac OS можна знайти тут. Налаштування змінних середовища в OS X?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.