Composer:与您的要求或最低稳定性冲突

5

我正在尝试在一个空目录中运行composer require phpseclib/mcrypt_compat:dev-master,但出现以下错误:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for phpseclib/mcrypt_compat dev-master -> satisfiable by phpseclib/mcrypt_compat[dev-master].
    - phpseclib/mcrypt_compat dev-master requires phpseclib/phpseclib dev-master -> satisfiable by phpseclib/phpseclib[d
ev-master] but these conflict with your requirements or minimum-stability.


Installation failed, deleting ./composer.json.

我不理解这个。 https://github.com/phpseclib/phpseclib/blob/master/composer.json 显示所需的最低 PHP 版本为 5.6.1。还有两个其他的库是必需的,但是 Composer 没有说这些其他的库是不兼容的 - Composer 说 phpseclib / phpseclib 不兼容。
当我输入 php -v 时,这是我的输出:
PHP 7.0.26 (cli) (built: Nov 22 2017 13:19:37) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

PHP 7.0.26比PHP 5.6.1更新,而phpseclib/phpseclib:dev-master所需的最低版本是PHP 5.6.1。

你有什么想法吗?


composer require vendor/package dev-master 应该可以工作。 - Charlotte Dunois
3个回答

7
创建一个包含最小稳定性的composer.json文件:
{
     "require": {
         "phpseclib/mcrypt_compat": "dev-master"
      },
     "minimum-stability": "dev"
}

http://getcomposer.org/doc/04-schema.md#minimum-stability

如果未指定,最低稳定性默认为stable。

注:此处的“稳定性”是指软件开发中的版本稳定性。


你可以在命令行上使用 composer config minimum-stability dev 来更改稳定性设置。 - undefined

1
我想分享我的经验:
我正在创建一个bundle,并在我的bundle composer.json文件中设置了"minimum-stability": "dev"。然后,当我添加新的packages时,几乎所有的packages都会安装dev版本。
后来,当我想将这个bundle集成到我的应用程序中时,我遇到了最小稳定性冲突错误。
为了摆脱这种情况,我所做的是: 在我的bundle中:
  • 从composer.json中删除"minimum-stability": "dev"
  • 删除所有已安装的dev版本的packages和composer require package name`(不指定任何版本),这样只安装稳定版本。
在我的应用程序中:

再次使用这些设置添加本地package

"repositories": [
        {
            "type": "path",
            "url": "../xyz-auth-bundle"
        }
    ]

"require": {
  ...
  "xyz/auth-bundle": "dev-master"
}

rm -rf var/cache/; composer update; 一切顺利。

更多要点:

应用程序composer.json:

  • 没有'minimum-stability'设置
  • "type": "project",

bundle composer.json:

  • 没有指定version

希望这能为某些人节省时间。


0

如果您按照@Devon提到的更新composer.json至所需版本且仍然看到此错误,则意味着您忘记更新composer.lock文件:

php71 composer.phar update phpseclib/mcrypt_compat --no-progress

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接