2016-02-06 65 views
1

我下載composer.phar有:無法解析版本約束〜XX:無效的版本字符串 「〜XX」

curl -sS https://getcomposer.org/installer | php 

然後我運行此命令:

php composer.phar require mailgun/mailgun-php:~x.x 

但我得到這個錯誤:

[UnexpectedValueException]
無法解析版本約束〜XX:無效的版本字符串 「〜XX」

在互聯網上搜索,大多數回覆是更新最新的composer.phar。但我只是下載了它。如果是這樣的話,我該如何更新? (這是在Mac OS X版本10.10.5上)

+1

'x.x'不是一個版本。使用正確的[版本字符串](https://getcomposer.org/doc/articles/versions.md),例如'〜1.8'。 – Kontrollfreak

+0

@Kontrollfreak:你的評論做到了。如果你把它放在答案中,我會接受它是答案。 – EmilyJ

+0

請接受[Wouter's](http://stackoverflow.com/a/35243417/2032498)回答。它基本上是一樣的,只是更詳細:-) – Kontrollfreak

回答

1

在版本約束中,x表示意味着任何數字。所以你換句話說any number.any number:給我一個隨機發布。

~1.2表示>=1.2,<2.0。以更正式的方式:~y.z意味着>=y.z,<(y+1).0

你說的是給我至少任何版本,但低於任何版本+1。這當然是不可解決的。如果是這樣,這是非常危險的,因爲你允許所有版本。

所以你必須改變你的版本約束到更好或更安全的東西。例如,如果您想要任何1.x版本,請使用1.x,1.*~1.0。如果您想要任何1.x版本或任何2.x版本,請使用1.x|2.x或之前提到的任何其他變體。請參考Composer documentation。另請參閱有用的version constraint tester以測試您的版本約束。

相關問題