0

我使用 Laravel 的工作台创建了一个包并将其上传到 pica/pica-base 下的 Packagist。该包包含以下要求语句:

"require": { "php": ">=5.4.0", "illuminate/support": "4.2.*", "gregwar/captcha": "dev-master" },

当我尝试安装我的 pica/pica-base 软件包时,它失败并显示以下错误消息:

您的要求无法解决为一组可安装的软件包。

问题 1 - pica/pica-base dev-master 需要 gregwar/captcha dev-master -> 找不到匹配的包。- pica/pica-base dev-master 需要 gregwar/captcha dev-master -> 找不到匹配的包。- pica/pica-base dev-master 的安装请求 -> pica/pica-base[dev-master] 可满足。

根据常见问题解答的建议,我还尝试了使用 gregwar/captcha 包的 'dev'in staed of 'dev-master' 的过程,但结果相同。

我不明白这一点,因为具有完全相同的要求,我可以在任何其他项目中安装 gregwar-package。包的链接显示在我在 Packigist 上的包的页面中(https://packagist.org/packages/pica/pica-base)。

那么为什么会失败呢?

感谢您的努力!

4

1 回答 1

1

默认情况下,Composer 在计算依赖项时只使用稳定包。如果你想使用一个不稳定的(dev-master)包,有两种方法可以覆盖它:

  1. 在你的 rootcomposer.json中,需要一个dev-master包的版本(这就是为什么你可以毫无问题地获取pica/pica-base包,因为它在你的 root 中composer.json
  2. 在您的根目录composer.json中,将minimum-stability标志设置为dev

    "require": {
        ...
    },
    "minimum-stability": "dev"
    

所以你基本上可以做以下事情之一:

  1. 在你的根目录中添加gregwar/captcha依赖composer.json项(你的 Laravel 项目之一)
  2. 添加"minimum-stability": "dev"到您的根目录composer.json

我建议选择第二个选项。如果这样做,您可能还需要添加prefer-stable标志,以确保并非所有软件包都以不稳定版本下载:

"require": {
    ...
    "pica/pica-base": "dev-master"
},
"minimum-stability": "dev",
"prefer-stable": true
于 2014-09-04T09:18:08.993 回答