Я установил homebrew-php php72 на OSX high sierra. Как ни странно, когда я запускаю php, я все еще получаю предустановленный php 7.1 - еще более странно, когда я запускаю which php, он сообщает мне, что он будет использовать версию homebrew из /usr/local/bin, а не предварительно установленную версию в /usr/bin. У меня не настроены псевдонимы.
Некоторый вывод оболочки:
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/sbin:/sbin:/opt/X11/bin
$ which php
/usr/local/bin/php
$ php --version
PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
$ /usr/local/bin/php --version
PHP 7.2.3 (cli) (built: Mar 8 2018 10:30:06) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.3, Copyright (c) 1999-2018, by Zend Technologies
$ /usr/bin/php --version
PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
$ alias | grep php # There are no aliases
$
$ type -a php
php is /usr/local/bin/php
php is /usr/bin/php
Я не могу придумать ни одной причины, по которой это могло произойти, какие-то идеи?
Спасибо NFV
Показать вывод type -a php
У меня нет .bash_profile на этой машине, но есть .profile - он не касается PATH, хотя
@ArkadiuszDrabczyk добавил, спасибо
Попробуйте это: hash -r
Попробуйте добавить настройку пути в ваш .profile: PATH=/usr/local/bin:$PATH, затем выполните source ~/.profile после сохранения из vim. То, что вы описываете, действительно НЕЧЕТНО ... which php указывает верный путь!
@ArkadiuszDrabczyk блестящий hash -r исправил это - никогда раньше не приходилось использовать эту команду! Спасибо
Хорошо, тогда я перешел в ответ.
Я обвиняю в этом новое направление OSX «позволяет кэшировать все и вызывать хаос» в последнее время за это = p






Как обсуждалось в командах, hash -r исправил проблему. Из help hash:
-r forget all remembered locations
И для записи: Почему бы не использовать «который»? Что тогда использовать?
Как выглядит ваш .bash_profile для того, где он устанавливает PATH?