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 г.