2014-11-21 168 views
1

我有一个作曲家项目,需要在主项目composer.json文件中的供应商/包-1,供应商/包-1需要在包的composer.json中的供应商/包-2 -1。我目前安装了vendor/package-1的版本1.18.11和vendor/package-2的版本2.3.2。我想更新到新的供应商/包版本1 1.19 *(需要版本2.4 *从供应商/包-2。)并执行:作曲家要求未能安装包

composer require vendor/package-1:1.19.* 

失败并输出I得到的是

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 
    - vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2]. 
    - vendor/package-1 v1.19.1 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2]. 
    - vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2]. 
    - Can only install one of: vendor/package2[v2.3.2, v2.4.3]. 
    - Can only install one of: vendor/package2[v2.4.0, v2.3.2]. 
    - Can only install one of: vendor/package2[v2.4.1, v2.3.2]. 
    - Can only install one of: vendor/package2[v2.4.2, v2.3.2]. 
    - Can only install one of: vendor/package2[v2.4.3, v2.3.2]. 
    - Installation request for vendor/package2 == 2.3.2.0 -> satisfiable by vendor/package2[v2.3.2]. 
    - Installation request for vendor/package-1 1.19.* -> satisfiable by vendor/package-1[v1.19.1, v1.19.2]. 

Installation failed, reverting ./composer.json to its original content. 

作曲家是否需要命令需要为所有依赖项指定?如果我尝试

composer require vendor/package-1:1.19.* vendor/package-2:2.4.* 

它的作品,但它不应该有必要指定每个依赖项,对不对?

回答

3

看起来像vendor/package2在固定版本中需要2.3.2或2.3。*,并且不能更新到2.4。

通常您应该尝试放松版本要求以允许兼容的更新。使用波浪符操作符为此,需要package2为〜2.3(至少2.3,只要它不是不兼容的版本3,则更新)。这同样适用于package1:如果你需要包含在1.19行中的功能,你需要〜1.19。

+0

问题是package1需要2.3。*版本的1.18。*版本中的package 2和版本2.4。*中的1.19。*,但我不明白为什么它不能更新,如果package1更新它应该将包2更新为匹配的版本。 – Khriz 2014-11-24 08:48:35

+0

你现在的主包的'composer.json'对这两个包有什么看法? – Sven 2014-11-27 21:42:18

+0

它只在邮件composer.json中包含package1(像这样:“vendor/package1”:“1.19。*”)package2包含在package1的composer.json中 – Khriz 2014-11-28 16:20:17