【问题标题】:Required package in composer.json not found在 composer.json 中找不到所需的包
【发布时间】:2014-10-28 23:08:51
【问题描述】:

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

“要求”:{ "php": ">=5.4.0", “照亮/支持”:“4.2.*”, “gregwar/captcha”:“开发大师” },

当我尝试安装我的 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)。

那么为什么会失败呢?

感谢您的努力!

【问题讨论】:

  • 如果我省略了 gregwar 包,一切都安装得很好

标签: laravel composer-php packagist


【解决方案1】:

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

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

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

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

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

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

"require": {
    ...
    "pica/pica-base": "dev-master"
},
"minimum-stability": "dev",
"prefer-stable": true

【讨论】:

  • 谢谢,帮了大忙。我一直在我的项目本身的 composer.json 中寻找解决方案。将最低稳定性更改为 dev 使一切正常。
猜你喜欢
  • 2015-06-06
  • 2010-10-20
  • 2015-11-01
  • 2019-09-12
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 2019-11-01
相关资源
最近更新 更多