Composer更新代码 - phpunit不会更新

时间:2016-12-09 14:08:24

标签: phpunit composer-php codeception

我跑

rm -rf vendor && composer update codeception/codeception -v

我收到错误:

您的要求无法解析为可安装的软件包。

  Problem 1
    - The requested package phpunit/phpunit (locked at 4.1.6, required as 4.8.x-dev) is satisfiable by phpunit/phpunit[4.1.6] but these conflict with your requirements or minimum-stability.
  Problem 2
    - The requested package behat/gherkin (locked at v2.3.5, required as ~4.4.0) is satisfiable by behat/gherkin[v2.3.5] but these conflict with your requirements or minimum-stability.
  Problem 3
    - behat/behat v2.5.5 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.5 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.4 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.3 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.2 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.1 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.0 requires behat/gherkin ~2.2.9 -> satisfiable by behat/gherkin[v2.2.9] but these conflict with your requirements or minimum-stability.
    - Installation request for behat/behat 2.5.* -> satisfiable by behat/behat[v2.5.0, v2.5.1, v2.5.2, v2.5.3, v2.5.4, v2.5.5].

目前在require-dev中有以下设置:

"phpunit/phpunit": "4.8.x-dev",
        "phpunit/dbunit": "1.3.*",
        "codeception/codeception": "2.2.7",
        "fzaninotto/faker": "1.4.*",
        "flow/jsonpath": "0.2.*",
        "behat/behat": "2.5.*",
        "behat/gherkin": "~4.4.0",

以及我们公司创建的一个不相关的翻译包。

我正在尝试将代码更新到最新版本。

我已尝试设置各种版本的phpunit,但我无法摆脱错误。

我做错了什么?

更新

我更新了composer.json以使用与

中相同版本的包
composer show

输出,

除外
"zendframework/zend-crypt": "2.3.*",

composer update

仍有错误:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - mabuzagu/pdo-dblib-module dev-master requires doctrine/doctrine-orm-module ^1.0.0 -> satisfiable by doctrine/doctrine-orm-module[1.0.0, 1.1.0].
    - mabuzagu/pdo-dblib-module dev-master requires doctrine/doctrine-orm-module ^1.0.0 -> satisfiable by doctrine/doctrine-orm-module[1.0.0, 1.1.0].
    - doctrine/doctrine-orm-module 1.0.0 requires doctrine/orm >=2.5,<2.7 -> satisfiable by doctrine/orm[v2.5.0, v2.5.1, v2.5.2, v2.5.3, v2.5.4, v2.5.5].
    - doctrine/orm v2.5.5 requires doctrine/common >=2.5-dev,<2.7-dev -> satisfiable by doctrine/common[2.5.x-dev, 2.6.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.4 requires doctrine/common >=2.5-dev,<2.7-dev -> satisfiable by doctrine/common[2.5.x-dev, 2.6.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.3 requires doctrine/common >=2.5-dev,<2.7-dev -> satisfiable by doctrine/common[2.5.x-dev, 2.6.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.2 requires doctrine/common >=2.5-dev,<2.6-dev -> satisfiable by doctrine/common[2.5.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.1 requires doctrine/common >=2.5-dev,<2.6-dev -> satisfiable by doctrine/common[2.5.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.0 requires doctrine/common >=2.5-dev,<2.6-dev -> satisfiable by doctrine/common[2.5.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3] but these conflict with your requirements or minimum-stability.
    - doctrine/doctrine-orm-module 1.1.0 requires php ^5.6 || ^7.0 -> your PHP version (5.5.9) does not satisfy that requirement.
    - Installation request for mabuzagu/pdo-dblib-module dev-master -> satisfiable by mabuzagu/pdo-dblib-module[dev-master].

为什么?在我设置一些新版本之前,它可能不应该更新任何内容。

2 个答案:

答案 0 :(得分:1)

只需运行composer update

  

我做错了什么?

问题是您正在尝试更新单个程序包,而不是更新整个程序包列表,这是codeception较新版本所要求的。

正如您在错误消息中看到的那样,所有其他依赖项都渴望更新,但是locked因为它们已经在composer.lock文件中指定了版本。

删除.lock文件可能有所帮助,但不是“正确的方法”。只需告诉作曲家根据composer.json更新所有内容。

P.S。您可能还会考虑在将来提到的命令中使用composer clear-cache,因为您绝对肯定希望从头开始下载和安装每个依赖项。

答案 1 :(得分:0)

有两点:

  1. Composer经常无法使用依赖项执行更新。
  2. Codeception未绑定到您的项目。 (如果你没有故意的话) 这可以让你:

    composer remove codeception / codeception

    +

    作曲家需要&#34;代码/代码:2.2.7&#34;

  3. P.S。最近有同样的问题从2.0升级