我使用Laravel的工作台创建了一个包,并将其上传到pica/pica-base下的Packagist。该包包含以下需求声明:
"要求":{"php":">=5.4.0","照明/支持":"4.2.*","gregwar/catcha":"dev-master"},
当我尝试安装我的pica/pica基本包时,它失败了,并显示以下错误消息:
无法将您的要求解析为一组可安装的程序包。
问题1-pica/pica-base-dev-master需要gregwar/catcha-dev-master->找不到匹配的包。-pica/pica-base-dev-master需要gregwar/catcha-dev-master->找不到匹配的包。-pica/pica-base-dev master的安装请求->可由pica/pica base-dev master]满足。
根据常见问题解答的建议,我还尝试了gregwar/catcha包中"dev-master"的"dev"staed程序,但结果相同。
我不理解这一点,因为有了完全相同的要求,我可以在任何其他项目中安装gregwar包。包裹的链接显示在我在Packigist上的包裹页面上(https://packagist.org/packages/pica/pica-base)。
那么,为什么会失败呢?
感谢您的努力!
默认情况下,Composer在计算依赖项时只使用稳定的包。如果你想使用一个不稳定的(开发主)包,有两种方法可以覆盖它:
- 在根
composer.json
中,需要包的dev-master
版本(这就是为什么您可以像根composer.json
一样获得pica/pica-base
包) -
在根
composer.json
中,将minimum-stability
标志设置为dev
:"require": { ... }, "minimum-stability": "dev"
所以你基本上可以做以下事情之一:
- 在根
composer.json
(Laravel项目的一个)中添加gregwar/captcha
依赖项 - 将
"minimum-stability": "dev"
添加到根composer.json
我建议选择第二种选择。如果这样做,您可能还需要添加prefer-stable
标志,以确保并非所有包都以不稳定的版本下载:
"require": {
...
"pica/pica-base": "dev-master"
},
"minimum-stability": "dev",
"prefer-stable": true