在 Ubuntu 终端上未检测到作曲家供应商/bin 文件



昨天我刚刚在我的VM Ubuntu 15.10上安装了带有Behat的Laravel。一切正常,运行命令$ 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

请注意,对于doctrine phpspecvendor/bin中的文件,问题是一样的。

您遇到了相对路径问题。如果您的当前目录包含 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存在于第二条路径中(

执行behat时,您需要在vendor/bin/内部:

$ cd $HOME/project/vendor/bin
$ behat
...

但是,我不认为这是最新behat安装的问题,第 #1 行是一个格式良好的 shebang。我认为您可能想销毁vendor安装,更新作曲家等,然后重新安装Behat。这些文件不应以相对路径开头。

编辑:

根据作曲家文档,它创建了指向包二进制文件的符号链接,如源代码所示。您可以通过运行ls -l vendor/bin来验证这一点(所有符号链接都有一个指向其目标路径的->(。看来你原来的php composer.phar require ...从一开始就是腐败的。

相关内容

  • 没有找到相关文章

最新更新