根据您的最低稳定性设置,该软件包在足够稳定的版本中不可用
Posted
技术标签:
【中文标题】根据您的最低稳定性设置,该软件包在足够稳定的版本中不可用【英文标题】:The package is not available in a stable-enough version according to your minimum-stability setting 【发布时间】:2014-05-29 18:25:37 【问题描述】:我不太明白 Composer 如何使用最低稳定性设置。
我有两个包裹。假设PackageA
和PackageB
。
PackageA
的composer.json
文件如下所示:
"name": "vendor/packagea",
"minimum-stability": "dev",
"require":
"vendor/packageb": "dev"
所以PackageA
需要PackageB
。 PackageB
的 json 看起来像这样:
"name": "vendor/packageb",
"minimum-stability": "dev"
所以两者都说最低稳定性是dev
。所以我假设当我这样做时:
composer create-project vendor/packagea
但随后它抱怨消息:
[InvalidArgumentException]
Could not find package vendor/packagea with stability stable.
我觉得很奇怪,因为我认为将最低稳定性设置为dev
会将包从其“开发”分支中拉出。在 github 的情况下总是dev-master
。
所以我尝试通过告诉 composer 使用哪个分支来安装它:
composer create-project vendor/packagea testFolder dev-master
然后它抱怨找不到PackageB
:
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package vendor/packageb dev could not be found.
那么我该如何安装我的包呢?我还在开发中,所以我还不想为 PackageA 和 PackageB 创建一个版本...
【问题讨论】:
【参考方案1】:有两个问题:
在 create-project 中,默认情况下该命令使用 stable 稳定性来查找要安装的包,这就是为什么如果您指定 dev-master 而不是默认情况下它可以工作的原因。但是,您也可以运行 composer create-project vendor/packagea -s dev
在安装依赖项之后,我猜你的包在一个名为dev
的版本中不存在,所以如果你需要它,它就找不到它。要求 dev-master 可能会起作用,例如:
"name": "vendor/packagea",
"minimum-stability": "dev",
"require":
"vendor/packageb": "dev-master"
【讨论】:
将require
更改为dev-master
确实有效。还必须使用dev-master
选项安装它。但这对我来说仍然很奇怪。像dev
这样的散文完全没用,因为它真的对我没有任何作用。
例如,要求*@dev
将是一个允许开发版本的有效版本约束,但开发本身意味着它会尝试对不存在的类似版本进行完全匹配。
不适用于 composer 1.0-dev 2015-07-21: Invalid stability provided (=dev) must be one of: stable, RC, beta, alpha, dev
必须是 -sdev: composer create-project vendor/packagea -sdev
【参考方案2】:
我是如何解决这个问题的?
安装 Composer 后,运行以下命令安装 Composer Asset Plugin:
php composer.phar global require "fxp/composer-asset-plugin:^1.2.0"
现在选择一个应用程序模板开始安装 Yii 2.0。应用程序模板是一个包,其中包含用 Yii 编写的 Web 应用程序的骨架。
【讨论】:
以上是关于根据您的最低稳定性设置,该软件包在足够稳定的版本中不可用的主要内容,如果未能解决你的问题,请参考以下文章