昨天我刚刚在我的VM Ubuntu 15.10上安装了Laravel和Behat。
一切正常,运行命令$ vendor/bin/behat --init
成功创建了features/
文件夹
但今天运行$ vendor/bin/behat
时,有些奇怪,vendor/bin/behat: line 1: ../behat/behat/bin/behat: No such file or directory
vendor/bin/behat
文件中有什么内容?
第一行../behat/behat/bin/behat
访问实际位置有效$ vendor/behat/behat/bin/behat
,这基本上意味着file DOES exists
请注意,vendor/bin
中的文件问题与doctrine
phpspec
等问题相同。
答案 0 :(得分:1)
你有相对的路径问题。如果当前目录包含vendor/
并执行vendor/bin/behat
,则../behat/behat/bin/behat
不存在,因为它从当前目录向上一个目录,而不是vendor/bin/
。例如:
$ cd $HOME/project
$ vendor/bin/behat
vendor/bin/behat: line 1: ../behat/behat/bin/behat: No such file or directory
该相对路径变为$HOME/project/behat/behat/bin/behat
而不是$HOME/project/vendor/behat/behat/bin/behat
(注意vendor
存在于第二条路径中)
执行vendor/bin/
时,您需要在behat
内:
$ cd $HOME/project/vendor/bin
$ behat
...
但是,我不认为这是最新behat
安装的问题,line #1是一个结构良好的shebang。我想你可能想破坏你的vendor
安装,更新作曲家等,以及reinstall Behat。这些文件不应以相对路径开头。
修改强>
根据作曲家文档,它是creates symlinks to package binaries,如source code中所示。您可以通过运行ls -l vendor/bin
来验证这一点(所有符号链接都会指向其目标路径->
)。看起来你的原始php composer.phar require ...
从一开始就是腐败的。