我试图在空目录中运行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。还有另外两个lib是必需的,但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的最小版本。
有什么想法吗?
答案 0 :(得分:3)
创建一个指定了最小稳定性的composer.json文件:
{
"require": {
"phpseclib/mcrypt_compat": "dev-master"
},
"minimum-stability": "dev"
}
http://getcomposer.org/doc/04-schema.md#minimum-stability
如果未指定,最小稳定性默认为稳定。
答案 1 :(得分:1)
我想分享我的经验:
我正在创建一个包,并且在包composer.json文件中有"minimum-stability": "dev"
。然后,当我添加新软件包时,几乎所有软件包都安装了dev
版本。
稍后,当我想将此捆绑包集成到我的应用程序中时,我遇到了最小稳定性冲突错误。
我为摆脱这种情况所做的事情:
在我的捆绑包中:
"minimum-stability": "dev"
dev
版本和composer require
软件包名称的软件包(未指定任何版本),这导致仅安装稳定版本。在我的应用中:
使用这些设置再次添加本地软件包
"repositories": [
{
"type": "path",
"url": "../xyz-auth-bundle"
}
]
"require": {
...
"xyz/auth-bundle": "dev-master"
}
rm -rf var/cache/; composer update;
一切正常。
更多要点:
应用程序composer.json:
捆绑composer.json:
version
希望这可以节省某人的时间。
答案 2 :(得分:0)
如果您创建/更新了@Devon所述的composer.json到所需的版本,并且仍然看到此错误,则意味着您忘记更新composer.lock了:
php71 composer.phar update phpseclib/mcrypt_compat --no-progress