$ PATH не читається


0

Я спробував встановити MacPorts. Я додав наступний рядок до мого .zshrc :

export PATH=/opt/local/bin/port:$PATH

потім, коли я набираю port я отримую команду:

sudo: port: command not found

Але коли я намагаюся використовувати MacPorts, викликаючи його безпосередньо з файлу, він працює:

$ /opt/local/bin/port
MacPorts 2.3.4
Entering interactive mode... ("help" for help, "quit" to quit)
[Users/tom] > 

Коли я набираю цю команду echo $PATH це те, що я отримую:

/opt/local/bin/port:/usr/local/mysql/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

Що не так, як вирішити цю проблему?

Спасибі заздалегідь.

P.S .: У мене така ж проблема, коли намагалася встановити git з Homebrew. Він працює лише тоді, коли я пишу весь шлях ( /usr/local/Cellar/git/2.9.3/bin/git в іншому випадку, незважаючи на спроби правильно встановити змінну $ PATH, вона використовує стару версію git (яка вже була встановлена ​​на моєму комп'ютері).

Відповіді:


1

Вам потрібно додати "шлях" до змінної PATH, а не файлу. Іншими словами, потрібно додати шлях до каталогу, який містить виконуваний файл, а не шлях до виконуваного файлу. Тому замість:

export PATH=/opt/local/bin/port:$PATH

зробити це:

export PATH=/opt/local/bin/:$PATH

Після зміни файлу .zshrc потрібно перезавантажити файл, завантаживши його або відкривши нову оболонку, щоб налаштування вступили в силу.

На бічній ноті, zsh має приємний альтернативний синтаксис для додавання екологічних змінних. Замість вищезазначеної заяви можна зробити:

export PATH+=('/opt/local/bin/')

Щоб допомогти налагодити проблему, ви можете змінити PATH та інші змінні оточення безпосередньо в командному рядку, щоб підтвердити правильність синтаксису / шляху; ці налаштування не зберігаються і застосовуються лише до поточної оболонки. Після правильного розробки синтаксису ви можете додати їх до файлу .zshrc.

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