【问题标题】:composer why-not is not helpful - why can I not install this packagecomposer why-not 没有帮助 - 为什么我不能安装这个包
【发布时间】:2017-03-16 01:54:49
【问题描述】:

我不能在 contao 项目中要求以下包。

$ php composer.phar require -v con4gis/con4gis_forum
Using version ^1.7 for con4gis/con4gis_forum
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Dependency resolution completed in 0.026 seconds
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: don't install con4gis/con4gis_forum v1.7.1
    - Installation request for con4gis/con4gis_forum ^1.7 -> satisfiable by con4gis/con4gis_forum[v1.7.0, v1.7.1].
    - con4gis/con4gis_forum v1.7.0 requires con4gis/con4gis_core ~1.7 -> satisfiable by con4gis/con4gis_core[v1.7.0, v1.7.1].
    - con4gis/con4gis_core v1.7.0 requires menatwork/contao-multicolumnwizard 3.3.8 -> satisfiable by menatwork/contao-multicolumnwizard[3.3.8].
    - con4gis/con4gis_core v1.7.1 requires menatwork/contao-multicolumnwizard 3.3.8 -> satisfiable by menatwork/contao-multicolumnwizard[3.3.8].
    - Conclusion: don't install menatwork/contao-multicolumnwizard 3.3.8


$ php composer.phar why-not menatwork/contao-multicolumnwizard
contao-legacy/semantic_html5      1.1.7.9014    requires  contao-legacy/multicolumnwizard (>=3.0.0,<4.0.0-dev)  
metamodels/attribute_alias        2.0.0-alpha2  requires  menatwork/contao-multicolumnwizard (~3.3)             
metamodels/core                   2.0.0-alpha9  requires  menatwork/contao-multicolumnwizard (~3.3)             
psi/news4ward                     2.2.3         requires  menatwork/contao-multicolumnwizard (~3)               
terminal42/contao-changelanguage  3.1.0         requires  menatwork/contao-multicolumnwizard (^3.3)     

我检查了为什么不打印的所有要求,并且 3.3.8 已经是绿色的,即满足 https://semver.mwl.be/#?package=menatwork%2Fcontao-multicolumnwizard&version=%5E3.3&minimum-stability=stable

发生了什么事?

删除composer.lock 也没有帮助。

Composer 版本是最新稳定版。

作曲家.json

{
    "name": "local/website",
    "description": "A local website project",
    "type": "project",
    "license": "proprietary",
    "require": {
    "cgo-it/news4ward-rateit": "dev-master",
    "contao-legacy/ce_page_teaser": "~1.5",
    "contao-legacy/efg": ">=2.2.1.9005,<2.3-dev",
    "contao-legacy/om_searchkeys": "~1.0",
    "contao-legacy/rocksolid-columns": ">=1.0.6.9006,<1.1-dev",
    "contao-legacy/semantic_html5": ">=1.1.7.9014,<1.2-dev",
    "contao-legacy/survey_ce": "3.0.2.9003",
    "imi/imi_mm_changelanguage": "*",
    "jakeasmith/http_build_url": "^1",
    "madeyourday/contao-rocksolid-columns": ">=1.0.7.0,<1.1-dev",
    "metamodels/bundle_all": "dev-master",
    "phpoffice/phpexcel": "dev-master",
    "psi/news4ward": ">=2.2.3.0,<2.3-dev",
    "psi/news4ward_archive-menu": "2.0.8",
    "psi/news4ward_author-menu": "2.0.2",
    "psi/news4ward_comments": "2.1.0",
    "psi/news4ward_metatitle": "dev-master#d2c09fb47441c05011ddcc5b08e54aae138a8ab7",
    "psi/news4ward_mostread": "2.1.0",
    "psi/news4ward_multicategories": "1.0.5",
    "psi/news4ward_related": "2.1.0",
    "psi/news4ward_tags": "2.1.1",
    "contao-community-alliance/dc-general": "^2.0.0-beta32",
    "querypath/QueryPath": "^3.0",
    "terminal42/contao-changelanguage": "^3.1",
    "contao-community-alliance/composer-client": "~0.14",
    "delahaye/dlh_googlemaps": "^2.2",
    "contao-legacy/inputvar": "1.1.1.9048"
    },
    "prefer-stable": true,
    "minimum-stability": "dev",
    "config": {
    "preferred-install": "dist",
    "cache-dir": "cache",
    "component-dir": "../assets/components"
    },
    "repositories": [
    {
        "type": "artifact",
        "url": "packages"
    },
    {
        "type": "composer",
        "url": "https://legacy-packages-via.contao-community-alliance.org/"
    }
    ],
    "extra": {
    "contao": {
        "migrated": "done"
    }
    }
}

【问题讨论】:

  • 我们也可以看到composer.json 吗?
  • @Peh 我在上面添加了它
  • 这看起来很奇怪。但是,您应该将您的一些 contao-legacy 要求更改为它们的本机包(例如 semantic_html5rocksolid-columns)。
  • 我发现您的composer.json 存在几个一般性问题: 1. 您依赖于dev-master 版本。 2.您依赖于固定版本。 3.你依赖于废弃的版本。但是,将其复制到本地文件并运行 composer update 首先导致第一个存储库不可用的投诉,在删除它后,Composer 抱怨无法安装 contao-legacy/survey_ce 3.0.2.9003,因为该版本不存在。

标签: composer-php contao


【解决方案1】:

将您的composer.json 复制到本地文件,从中删除artifact 存储库并运行composer install 会导致找不到legacy/survey_ce 3.0.2.9003 的消息。但是,据报道3.0.2.9005 可用,所以我继续。

再次运行composer install 会产生一组可解析的依赖项。再次运行您的composer require 命令会导致您收到相同的错误消息。我想我现在在同一个地方。

运行composer show 以列出所有已安装的软件包,这表明有问题的软件包已安装在版本 3.3.10 中。

menatwork/contao-multicolumnwizard               3.3.10             MultiColumWizard for Contao OpenSource CMS

这解释了为什么无法安装依赖项,因为 Composer 通常不会对已安装的包进行降级。但是,它给出的提示并不能真正解释发生了什么。

正如我在评论中提到的,您应该立即尝试彻底检查您的依赖项:

  1. 您依赖的是固定版本。检查您是否可以放宽版本号以允许兼容更新。如果库作者声明他们支持语义版本控制,这是最简单的,如果他们声明他们明确不支持它,如果他们还声明如何获取补丁,这也很容易。
  2. 您依赖于dev-master 版本。取决于分支会在某些时候破坏你的项目!检查您正在使用的库是否已发布标记版本。检查您当前引用的最接近的版本。将您的依赖项从 dev-master 更改为该版本(包括兼容更新,如第一点所述),然后查看您的项目是否仍然有效。
  3. 您还依赖于废弃的版本。您应该将依赖项升级到引用的包 - 但是这绝不保证是一个轻松的转换,可能需要进行一些更改。但这将有助于减少所涉及的软件包数量,因为似乎许多contao-legacy 库都以menatwork 的形式重新发布,并且确实得到了更新。而且这些库应该是可以切换的。

【讨论】:

  • 对固定menatwork/contao-multicolumnwizard版本的依赖来自Kuestenschmiede/con4gis_core。我这里已经举报了:github.com/Kuestenschmiede/con4gis_core/issues/28 目前只在dev分支改过。
  • 太棒了,感谢您的服务,也感谢@fritzmg - 我想我们也会向作曲家提出要求,提供更好的信息?
  • 获得关于解决依赖关系的更好消息并不容易,因为基本上你只能判断它们是否可以解决 - 调查失败的原因很难向用户解释,因为它可能很多因素。但是,我准备了一个应该可以实现的功能请求,因为它基于现有知识:github.com/composer/composer/issues/6272 让我们看看维护者是否可以对此做点什么。
猜你喜欢
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
相关资源
最近更新 更多