2014-11-21 220 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