顺便说一句,我缺乏一些睡眠,我现在似乎被封锁了,这可能会让你觉得这是毫无意义的咆哮,所以如果它们看起来不是这样,请尝试耐心地接受它们。
我正在开发OS X Snow Leopard。我不会撒谎,我喜欢访问PEAR为我设置的二进制文件。我只是在安装 PEAR 软件包后brew unlink php53
和brew link php53
,所以我在 /usr/local/bin
中获取它们的二进制文件。
以贝哈特为例。如果我通过 PEAR(现已过时(安装它,我会执行上述过程,然后我可以通过 behat
立即访问它,仅此而已。如果我对Composer生成的整个bin
文件夹进行符号链接,除了behat
之外,我还会收到三个"命令":behat.bat
和release
。
我做错了什么吗?有没有办法集中正确的二进制文件,例如在/usr/local/bin
上,最好不必添加新的路径来$PATH
?有没有办法通过作曲家做到这一点?
我正在考虑 npm,您可以在其中设置模块的全局和本地版本。我想要(正确的(二进制文件的舒适全局版本。一种宝石镶嵌,没有真正不必要地复制东西。
你看?这是很多混合的信息,但这就是我现在的头脑感觉。我想我正在寻找类似另一个问题的东西,只是应用于"供应商"二进制文件。
提前感谢!
PS:如果我真的听起来像一个悲惨的人,请告诉我,我会在睡个好觉后的第一个小时改写我的信息。谢谢!
问题是,如果你在全球范围内安装东西,当一个项目需要不兼容的Behat 1.5和另一个Behat 2.0(虚构版本(时会发生什么?使用 require-dev 在项目本身中安装这些工具是解决此问题的好方法。然后你只需在你的项目中调用bin/behat,就是这样(假设你在作曲家配置中放了一个bin-dir: bin
,否则就是vendor/bin/behat(。
关于behat.bat
和release
,这不会发生。这些文件存在于 behat 本身中,但它们不会在作曲家 bin 目录中链接。
最后,如果你真的想让它全局化,你可以有~/phputils/composer.json或其他东西:
{
"require": {
"behat/behat": "*"
},
"config": {
"bin-dir": "/usr/local/bin"
}
}
我不确定目前绝对的bin-dir是否有效,我尤其不确定这样做是否是一个好主意,但这是一种选择。最好我会说你应该把它放在"bin"
,并在你的 PATH 中添加~/phputils/bin
。然后你可以进入那个目录,运行作曲家安装/更新,就是这样。
还有一个技巧是在/usr/local/bin 中做一个 composer-g shell 脚本,该脚本执行cd ~/phputils/ && composer $*
,以便您可以从任何地方调用composer-g update behat/behat
。