Добавление нового исполняемого файла в переменную среды PATH?


16

Я пытаюсь установить эту библиотеку под названием phantomjs.

Инструкции включают эту строку:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Для удобства скопируйте исполняемый файл bin / phantomjs.app / Contents / MacOS / phantomjs в какой-то каталог в вашей переменной PATH.

Как мне это сделать?


Я не думаю, что вам нужно беспокоиться о том, чтобы поместить это в ваш путь, поскольку bin уже в нем. Но если вы хотите, вы можете найти, как этого добиться, здесь: Troubleshooters.com/linux/prepostpath.htm

@cksum, но это относительный путь; мы не знаем, что стоит перед «мусорным ведром».
Bneely

@bneely Да, но нет ~ / bin. Доступны только / bin, / usr / bin и / usr / local / bin. Все из которых уже на вашем пути. Если вы запустите, pathвы увидите следующее по умолчанию: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binя не просматривал скрипт установки рассматриваемой программы, но было бы крайне маловероятно, чтобы установка куда-нибудь в его собственную папку 'bin'. И вы не можете добавить относительные пути AFAIK. Я склонен думать просто опечатка из неаккуратного гида.

Я знаю, что относительные пути не могут быть добавлены; Я утверждаю, что путь в вопросе является относительным путем, потому что он не начинается с / или ~.
Bneely

Ответы:


10

Для того, чтобы выяснить , что находится в вашем PATH, откройте окно терминала и выполните следующую команду: echo $PATH. Вывод представляет собой разделенный двоеточиями список каталогов, содержимое которых вы можете запустить без указания полного пути.

Поскольку / usr / bin находится в моем пути, я могу запустить wкоманду, просто набрав wвместо полной /usr/bin/w.

Кроме того, вам не нужно перемещать исполняемый файл в один из перечисленных каталогов PATH. Другие варианты включают

  • Оставьте исполняемый файл там, где он есть, и символическую ссылку на него из одного из каталогов PATH.
  • Добавьте каталог в PATH, явно указав его в сценарии входа в систему для вашей оболочки

Пожалуйста, следуйте совету @ Джерри в другом ответе и вставьте ссылку . Это самый чистый способ!
Cregox

Если по какой -то шанс, вам нужен полный каталог в PATH, поскольку есть много исполняемых файлов в нем вам нужен доступ к, не существует какой - либо другой вариант , и что это то , что PATHдля. В настоящее время мы используем ~ / .bash_profile для добавления к пути .
Cregox

20

Самый простой способ добиться этого - создать символическую ссылку на двоичный файл в каталоге / usr / local / bin (который включен в PATH по умолчанию). Вам может понадобиться создать этот каталог, если он еще не существует. Вы можете проверить, есть ли эти каталоги в вашей переменной PATH, открыв Terminal.app и набрав:

echo $PATH

Это создаст список разделенных двоеточиями всех каталогов в вашей переменной PATH.

Если каталоги / usr / local или / usr / local / bin еще не существуют, выполните следующее:

sudo mkdir -p /usr/local/bin

Символическую ссылку на двоичный файл замените (/ Applications) на путь к phantomjs.app, если он отличается:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Теперь у вас не должно возникнуть проблем с запуском phantomjs из командной строки.


+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Хосе Карлос Рамос Карменатес

3

Возвращаясь к корню вашей проблемы, если вы устанавливаете phantomjs, вы можете использовать npm, чтобы сделать это проще.

Если вы это сделаете, то вы можете просто запустить:

npm install -g phantomjs-prebuilt

который установит бинарный файл внутри соответствующего каталога bin. (флаг -g указывает npm, что пакет должен быть установлен глобально)


0

Хотя символическая ссылка на файл из другой директории работает, я предпочитаю фактически скопировать / переместить файл usr/local/bin, чтобы не иметь его «дважды».

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.