oh-my-zsh — прекрасный фреймворк для оболочки zsh на платформе Unix. Как они сказали, это прекрасно улучшит ваш опыт использования оболочки с множеством функций, включая команду автоматического завершения для популярных пакетов, таких как Git, php и т. д.
Но есть одно предостережение при использовании этой оболочки, а не оболочки bash по умолчанию. .bash_profile
файл! Я имею в виду, что я провел часы, ломая голову, чтобы найти, что не так с моей конфигурацией $ PATH, хотя я обновляю php до версии 5.6, но когда я пытаюсь проверить это в терминале, набрав php -v
, возвращается всегда 5,5 .31.
В ПОРЯДКЕ. Будучи полным новичком в Unix-подобном терминальном сеансе, путешествие к моменту моего самопознания началось с сеанса трассировки в моем терминале Mac:
- Введите
which php
в терминал, возвращает/usr/bin/php
- Проверил путь, набрав
echo $PATH
возвращает путь, что ни одной строчки с упоминанием пути экспорта из/usr/bin/php
, но есть одно подозрение, что путь экспорта указывающий на php из другого места/Application/MAMP/bin/php5.5.3
- Откройте файлы
~/.bash_profile
и~/.profile
. Выглядит хорошо, но до сих пор нет текстового пути к/usr/bin/php
, не говоря уже о MAMP php. Вместо этого мой экспорт установки php в bash_profile указывает на/usr/local/php5/bin/php
. Хм. Подозрения усиливаются… Значит этот bash_profile никогда не выполнялся системой, а с помощью профиля я не узнаю что и где…
- Чтобы проверить теорию, я выполняю
source ~/.bash_profile.
Ну-ну, смотрите, что я только что обнаружил, когда пыталсяphp -v
. Теперь он показывает, что я использую php 5.6.27. Яаай! - Ура? Нет! Слишком рано, мой мальчик. Когда я перезапустил оболочку bash,
php -v
снова показывает возврат к версии 5.5.31. Должен ли я использовать профиль bash каждый раз, когда я открываю терминал только для того, чтобы php cli 5.6.27 работал и работал? Что я? Дикарь? - Интенсивный поиск в Google и подозрение, что есть связь с тем, что я использую другую базовую оболочку bash с отсутствующей ссылкой профиля bash, приводят меня к окончательному ответу.
- оказывается ответ прост. Я использую оболочку zsh, и исполняемый путь хранится в их собственном файле профиля с именем
.zshrc
. В порядке. Я открыл файл (извините, новичок, то есть с помощьюvi ~/.zshrc
и вуаля! Здесь хранится весь проблемный путь экспорта, включая путь к/usr/bin/php
и даже путь к php MAMP one! Итак, как хороший мальчик, как я, Я удалил все устаревшие пути и… ребята, это самая важная часть… чтобы снова соединить этот профиль zsh с моим bash по умолчанию, я сохранил эту команду в конце моего файла.zshrc
: как вы уже догадались, да, старыйsource ~/.bash_profile.
Это чтобы гарантировать, что zsh будет выполнять профиль bash, поэтому я бы не стал пачкать руки и экспортировать новый путь в bash_profile вместо zsh каждый раз, когда это необходимо.
Фертиг. Иди домой. Наслаждайтесь ужином!
Первоначально опубликовано на сайте rambideunt.com 2 декабря 2016 г.