我正在创建自己的slackbot。我决定使用project作为库来帮助我。
https://github.com/sagebind/slack-client/issues?utf8=%E2%9C%93&q=stability
现在我需要用composer安装它。
所以我使用了命令:composer require coderstephen/slack-client
......我收到错误:
Problem 1
- Installation request for coderstephen/slack-client ^0.3.0 -> satisfiable by coderstephen/slack-client[v0.3.0].
- coderstephen/slack-client v0.3.0 requires devristo/phpws dev-master -> satisfiable by devristo/phpws[dev-master] but these conflict with your requirements or minimum-stability.
好的 - 那么我决定将我的稳定性水平改为" dev"在我的composer.lock
:
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"devristo/phpws": 20
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": ">=5.5"
},
"platform-dev": []
现在我已经没有了解该怎么做了。 README说在composer.json中执行此步骤但是,不存在这样的设置:
请注意,当前版本的依赖项不稳定。
为了安装这些依赖项,您可以设置"最小稳定性"在你的composer.json中,并建议你设置" prefer-stable":
我的composer.json:
{
"name": "coderstephen/slack-client",
"keywords": ["slack", "api", "realtime"],
"license": "MIT",
"description": "A better Slack client, with RTM API support",
"authors": [{
"name": "Stephen Coakley",
"email": "me@stephencoakley.com"
}],
"require": {
"php": ">=5.5",
"devristo/phpws": "dev-master",
"evenement/evenement": "2.0.*",
"guzzlehttp/guzzle": "~6.0",
"react/event-loop": "^0.4.1",
"react/promise": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"fzaninotto/faker": "~1.4",
"apigen/apigen": "^4.1"
},
"autoload": {
"psr-4": {
"Slack\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Slack\\Tests\\": "tests"
}
}
}
有人知道我可以尝试的一些解决方案吗?
答案 0 :(得分:40)
将cons
和minimum-stability
添加到prefer-stable
(不是composer.json
):
composer.lock
答案 1 :(得分:6)
你永远不应该手动编辑composer.lock文件 - 它是一个自动生成的文件。
您似乎已经展示了您尝试要求的软件包的composer.json文件,而不是您自己的项目的composer.json。应将{
"name": "coderstephen/slack-client",
"keywords": ["slack", "api", "realtime"],
"license": "MIT",
"description": "A better Slack client, with RTM API support",
"authors": [{
"name": "Stephen Coakley",
"email": "me@stephencoakley.com"
}],
"require": {
"php": ">=5.5",
"devristo/phpws": "dev-master",
"evenement/evenement": "2.0.*",
"guzzlehttp/guzzle": "~6.0",
"react/event-loop": "^0.4.1",
"react/promise": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"fzaninotto/faker": "~1.4",
"apigen/apigen": "^4.1"
},
"autoload": {
"psr-4": {
"Slack\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Slack\\Tests\\": "tests"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
和prefer-stable
属性添加到项目根目录的composer.json文件中:
minimum-stability
答案 2 :(得分:1)
你应该在composer.json中添加最小稳定性,而不是在composer.lock中。该选项存在,请参阅https://getcomposer.org/doc/04-schema.md#minimum-stability
答案 3 :(得分:1)
通常,此问题与最小稳定性或首选稳定选项没有直接关系,但是这种情况只是您已经直接或间接使用了某些库,这在您使用的另一个库中却需要,但在更高版本中
我的情况:我安装了Codeception,但需要PHPUnit 4,但Codeception至少需要phpunit 6-最多8。而phpunit 6仅支持php7.0,因此我必须从4显式增加我使用的phpunit版本。到6,以便库代码接收可以使用它。
您可能会问,这是否可能会影响已经依赖于该库较低版本的项目,也许会有一些重大更改,但是我不知道是否存在一些解决方法,可以使用一个版本进行依赖和自己项目的另一个版本。
编辑:我还必须对phpunit发出remove composer命令,否则我无法直接增加phpunit版本
答案 4 :(得分:0)
对于其他存在相同问题的人,最好使用composer本身完成这些更改,而不是手动修改composer.json文件。只需在控制台中运行以下命令:
$ composer config minimum-stability dev
$ composer config prefer-stable true
现在,您可以要求并更新软件包:
$ composer require --no-update "vendor/package-name:version"
$ composer update
可用选项(按稳定性顺序)是dev,alpha,beta,RC和稳定
答案 5 :(得分:0)
在具有自己的捆绑软件的symfony4项目中出现错误。
my-foo-bundle dev-master requires ramsey/uuid-doctrine ^1.5 -> satisfiable by ramsey/uuid-doctrine[1.5.0, 1.6.0] but these conflict with your requirements or minimum-stability.
解决方案,我在捆绑包中搜索“ ramsey / uuid-doctrine”,发现了不同的要求“ ramsey / uuid-doctrine ^ 1.5”(在my-foo-bundle中)和“ ramsey / uuid-doctrine dev-主”(在我的应用程序配置中)。所以我删除了app / composer.json中的要求。
这对我有用。