Итак, у меня установлен Gentoo с тремя версиями PHP (не говоря уже о причинах):
/usr/bin/php
->/usr/lib64/php5.4/bin/php
/usr/bin/php5.5
->/usr/lib64/php5.5/bin/php
/usr/bin/php5.6
->/usr/lib64/php5.4/bin/php
Я хочу установить фреймворк Laravel с помощью композитора:
$ composer create-project laravel/laravel --prefer-dist
Однако это вызывает ошибку, потому что Laravel требует PHP> 5.5.9, а интерпретатор php
по умолчанию - 5.4. Итак, я даю еще одну команду:
$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-dist
Это продвигает меня еще на один шаг, но затем в игру вступают некоторые команды после установки из Laravel composer.json
, и установка вылетает.
Это связано с тем, что composer.json
команды выглядят так:
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
Как видите, снова используется интерпретатор "по умолчанию"!
Теперь правильные файлы PHP начинаются со следующей строки:
#!/usr/bin/env php
Это приятная функция, поскольку интерпретатор PHP можно найти в разных местах в разных системах. К сожалению, в этом случае команда env
возвращает путь к первому исполняемому файлу, который она находит в переменной среды $PATH
.
Как я мог изменить текущую среду сеанса или какой трюк выполнить, чтобы для выполнения всего процесса установки Laravel команда php
вызывала /usr/bin/php5.6
вместо /usr/bin/php
?
Я не хочу изменять $PATH
переменную или модифицировать такие файлы, как composer
, composer.json
или утилиту Laravel CLI artisan
.
Изменить: также предположим, что я хочу сделать это из учетной записи обычного пользователя (т.е. без прав root).
GNU stow
- person Arkadiusz Drabczyk   schedule 03.07.2015PHP_BIN
или по умолчанию/usr/bin/php
else. (См. Также В Bash, когда использовать псевдоним, когда скрипт и когда писать функцию?) - Кроме того, если у вас установлено более трех версий, вы официально накопитель. - person mario   schedule 03.07.2015alias
: к сожалению, это не работает. Возможно, потому чтоalias
не работает, когдаphp
вызываетсяcomposer
или/usr/bin/env
. - person roomcays   schedule 03.07.2015