【问题标题】:how can I install package in composer without dependency如何在没有依赖的情况下在 composer 中安装包
【发布时间】:2014-02-25 11:10:08
【问题描述】:

我正在使用 composersymfony php

有一个bundle A 依赖于另一个bundle B v 1.1

但我有最新版本的bundle B v 2

现在我想安装 bundle A 而不安装它的依赖项 bundle B v 1.1

我该如何进行?请提出建议。

【问题讨论】:

  • 昨天有人问了一个很相似的question
  • @nifr 我想你知道。我的问题是瓢虫包。它需要瓢虫 1.02,但我已经安装了它的主版本,所以作曲家导致错误
  • 如果 A 需要 1.1 而 B 需要 2.0,那么您就有一个无法解决的依赖问题。使用 1.1 或 2.0。

标签: php symfony composer-php


【解决方案1】:

设置:

最新的瓢虫捆绑版本是1.0.2,但同时还有更多的提交。它需要瓢虫版本是1.0.8,其中不包括最新的更改。

解决方案:

一个简单的解决方案是使用inline-alias。比如:

"require" : {
    "raulfraile/ladybug-bundle": "dev-master as 1.0.3"
    "raulfraile/ladybug": "dev-master as 1.0.9"
}

替代方案:

您可以在 composer.json 中定义一个包含更改后的依赖项的同名包。

只需从原始包中复制包定义,添加 dist/source 位置并编辑需求。

composer 然后将使用这个新的包定义,因为它从所有已知的存储库中挑选第一个匹配项(packagist 总是最后查询)。

您应该为 dist-zip 选择一个特定的提交。一个例子:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "raulfraile/ladybug-bundle",
            "version": "1.0.3",
            "require": {
               "raulfraile/ladybug" : "~1.0@dev"
            },
            "dist": {
                "url": "https://github.com/raulfraile/LadybugBundle/archive/5c3739a881313f63f7b47ace49af5deeed211362.zip",
                "type": "zip"
            },
        }
    }
],

现在在您的 composer.json 中需要 "raulfraile/ladybug-bundle": "~1.0",它将使用您自己定义的 1.0.3 版本。

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 2015-04-13
    • 2018-06-03
    • 2015-01-18
    • 1970-01-01
    • 2012-07-23
    • 2015-01-04
    • 2013-11-29
    • 2013-02-19
    相关资源
    最近更新 更多