我期望
composer update videlalvaro/PHP-amqplib
只会更新一个依赖关系,而不是更新所有.
我失踪了什么
PS:这个依赖被定义为“videlalvaro / PHP-amqplib”:composer.json中的“2.2.0”
PPS:使用的作曲家版本是3da05c68f9561fa822c522b1815435ff990493ff 2013-10-02 14:25:06
PPPS:实际输出:
$composer.phar update videlalvaro/PHP-amqplib --no-dev Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - symfony/icu v1.2.0 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system,make sure to have the extension providing it. - symfony/icu v1.2.0 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system,make sure to have the extension providing it. - Installation request for symfony/icu == 1.2.0.0 -> satisfiable by symfony/icu[v1.2.0].
命令作曲家更新videlalvaro / PHP-amqplib只是更新该依赖.但是它不会禁用Composer的其他依赖关系检查.
抱怨的错误信息是lib-icu在您的系统上不可用.显然这将通过安装PHP Intl扩展来解决.
如果您在需要PHP 5.5的项目中进行作曲家更新,降级到PHP 5.4,然后在单独的需求(不需要PHP 5.5)上运行作曲家更新,则会看到类似的问题.即使您不需要更新需要PHP 5.5的需求,该包的要求也不可解决,因此Composer将失败.
在您的情况下,尽管您只是想将videlalvaro / PHP-amqplib更新到最新版本,但是symfony / icu的要求不能满足,因此作曲家更新失败.
编辑
为了尝试有帮助,我猜你自从上次进行更新以来重新安装了PHP,并且删除或忘记安装PHP Intl扩展.作曲者不能令人满意地满足您的composer.json设置的要求,因此默认情况下不做任何操作,而不是故意进行不符合要求的更新.
因此,基本上,您需要安装现有已安装软件运行所需的PHP扩展,然后Composer将能够更新要更新的单个软件包,并满足其他软件包的要求.