php - 我将如何只更新一个 Composer 依赖项?

标签 php composer-php

我是这么想的

composer update videlalvaro/php-amqplib

只会更新一个依赖项,而不是更新所有依赖项。

我错过了什么?

PS:此依赖项在 composer.json 中定义为 "videlalvaro/php-amqplib": "2.2.0"

PPS:使用的 composer 版本是 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].

最佳答案

命令 composer update videlalvaro/php-amqplib 只是更新该依赖项。但是它不会禁用 Composer 所做的其他依赖项检查。

错误消息提示的是 lib-icu 在您的系统上不可用。显然这可以通过安装 PHP Intl 扩展来解决。

如果您在其中一个要求中需要 PHP 5.5 的项目执行 composer update,降级到 PHP 5.4,然后在另一个不需要 PHP 5.5 的要求上运行 composer update,您会看到类似的问题。即使您不会更新需要 PHP 5.5 的需求,该包的需求也无法解析,因此 Composer 会失败。

在您的情况下,即使您只是尝试将 videlalvaro/php-amqplib 更新到最新版本,也无法满足 symfony/icu 的要求,因此 Composer 更新失败。

编辑

为了提供帮助,我猜您在上次更新后重新安装了 PHP,并且删除或忘记安装 PHP Intl 扩展。 Composer 无法令人满意地满足您的 composer.json 设置的要求,因此默认不做任何事情,而不是故意在不满足要求的情况下进行更新。

所以基本上,您需要安装运行现有已安装软件所需的 PHP 扩展,然后 Composer 将能够更新您要更新的单个包,以及满足其他包的要求.

关于php - 我将如何只更新一个 Composer 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148727/

相关文章:

php - 如何在 HTTP POST 请求中传递图像并插入到数据库表中

php - 从字符串php中删除度数符号

Laravel Spark - 无法连接到存储库

php - 带有docker的PHP开发环境(以及如何使用composer)

找不到 Laravel 4 播种类哨兵

symfony - 将 Symfony 4 应用程序部署到 Google App Engine 时出现安全检查器错误

c# - HTML 敏捷提取 PHP 标签

php - Mysqli 弄乱了我的 while 循环

php - AJAX - 如何在选择时显示不同的列

php - 在本地使用 Composer 然后通过 FTP 上传文件