2016-02-06 63 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以测试您的版本约束。

相关问题