所以我有安装了三个PHP版本的Gentoo框(从来没有理由):
/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
- Arkadiusz Drabczyk 7月3日'15在12:45PHP_BIN
例如为导出的环境变量提供荣誉,或者默认为/usr/bin/php
其他。(另见在Bash,什么时候别名,什么时候脚本,什么时候写一个函数?) - 另外,一旦你安装了三个以上的版本,你就是正式的囤积者。 - 马里奥 7月3日'15在12:50alias
:可悲的是这不行。也许是因为alias
当不工作php
是通过调用composer
或通过/usr/bin/env
。 - 室内 7月3日星期三13:50