英文:
How to resolve the Composer issue when installing dependecy conflicts with the same dependecy?
问题
在项目中有一个 composer.json 文件:
{
"name": "some/blog",
"license": "proprietary",
"type": "project",
"require": {
"doctrine/orm": "2.11",
"symfony/cache": "^6.0"
},
"require-dev": {
"roave/security-advisories": "dev-latest",
"symfony/var-dumper": "^6.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
并尝试安装 doctrine/data-fixtures
包:
$ composer require --dev doctrine/data-fixtures
但是遇到了错误:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- doctrine/data-fixtures 1.6.6 conflicts with doctrine/data-fixtures 1.6.6.
- doctrine/data-fixtures 1.6.5 conflicts with doctrine/data-fixtures 1.6.5.
- doctrine/data-fixtures 1.6.4 conflicts with doctrine/data-fixtures 1.6.4.
- doctrine/data-fixtures 1.6.3 conflicts with doctrine/data-fixtures 1.6.3.
- doctrine/data-fixtures 1.6.2 conflicts with doctrine/data-fixtures 1.6.2.
- doctrine/data-fixtures 1.6.1 conflicts with doctrine/data-fixtures 1.6.1.
- doctrine/data-fixtures 1.6.0 conflicts with doctrine/data-fixtures 1.6.0.
- doctrine/orm is locked to version 2.11.0 and an update of this package was not requested.
- Root composer.json requires doctrine/data-fixtures ^1.6 -> satisfiable by doctrine/data-fixtures[1.6.0, ..., 1.6.6].
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
这是什么意思,某个版本的依赖项与相同版本的相同依赖项冲突?如何解决这个问题?
更新:感谢Niko的回答,问题已通过安装较新版本的 doctrine/orm
包解决。根据 doctrine/data-fixtures
存储库,它与 doctrine/orm
低于2.14版本 冲突。
但为什么Composer的消息是 doctrine/data-fixtures 1.6.6 conflicts with doctrine/data-fixtures 1.6.2.
?正确的消息应该是 doctrine/data-fixtures 1.6.6 conflicts with doctrine/orm 2.11
。
看起来这是Composer的一个 bug。
英文:
Have a composer.json file in a project:
{
"name": "some/blog",
"license": "proprietary",
"type": "project",
"require": {
"doctrine/orm": "2.11",
"symfony/cache": "^6.0"
},
"require-dev": {
"roave/security-advisories": "dev-latest",
"symfony/var-dumper": "^6.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
and trying to install doctrine/data-fixtures
package
$ composer require --dev doctrine/data-fixtures
but got an error:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- doctrine/data-fixtures 1.6.6 conflicts with doctrine/data-fixtures 1.6.6.
- doctrine/data-fixtures 1.6.5 conflicts with doctrine/data-fixtures 1.6.5.
- doctrine/data-fixtures 1.6.4 conflicts with doctrine/data-fixtures 1.6.4.
- doctrine/data-fixtures 1.6.3 conflicts with doctrine/data-fixtures 1.6.3.
- doctrine/data-fixtures 1.6.2 conflicts with doctrine/data-fixtures 1.6.2.
- doctrine/data-fixtures 1.6.1 conflicts with doctrine/data-fixtures 1.6.1.
- doctrine/data-fixtures 1.6.0 conflicts with doctrine/data-fixtures 1.6.0.
- doctrine/orm is locked to version 2.11.0 and an update of this package was not requested.
- Root composer.json requires doctrine/data-fixtures ^1.6 -> satisfiable by doctrine/data-fixtures[1.6.0, ..., 1.6.6].
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
What does it mean that the dependency in some version conflicts with the same dependency in the same version? And how to resolve such an issue?
UPD: Thanks for Niko's answer the issue have solved by installing a newer version of the doctrine/orm
package. According to the doctrine/data-fixtures
repo, it conflicts with doctrine/orm
under 2.14 version.
But why Composer's message is doctrine/data-fixtures 1.6.6 conflicts with doctrine/data-fixtures 1.6.2.
? The proper one should be doctrine/data-fixtures 1.6.6 conflicts with doctrine/orm 2.11
.
Looks like it's a Composer's bug.
答案1
得分: 1
自从doctrine/data-fixtures
v1.6.0(于2022年12月发布)以来,与早于v2.12的doctrine/orm
存在不兼容性(在PR 393中介绍)。
您应该要么升级doctrine/orm
到任何更新的版本(请记住,您使用的v2.11.0已经超过18个月了!),要么使用旧版本的doctrine/data-fixtures
,就像在这个命令中一样:
composer require --dev doctrine/data-fixtures:"^1.5"
英文:
Since doctrine/data-fixtures
v1.6.0 (released in Dec 2022), there's a incompability with doctrine/orm
older than v2.12 (introduced in PR 393).
You should either upgrade doctrine/orm
to any more current version (keep in mind that v2.11.0 that you use is more than 18 months old!), or use an older version of doctrine/data-fixtures
, like in this command:
composer require --dev doctrine/data-fixtures:"^1.5"
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论