Composer - 请求的包存在,但这些包被约束拒绝

Ant*_*art 44 php bundle stability composer-php

当我从composer运行我的安装时,我有这个错误:

λcomposer install您正在运行启用了xdebug的composer.这对运行时性能有重大影响.请参阅https://getcomposer.org/xdebug 使用包信息加载composer存储库更新依赖项(包括require-dev)无法将您的需求解析为可安装的软件包集.

错误:

问题1 - 请求的包antoineb1/smoney_bundle 1.0以antoineb1/smoney_bundle [dev-master]的形式存在,但这些被约束拒绝.

我的composer.json

{
    "name": "project",
    "license": "proprietary",
    "type": "project",
    "minimum-stability": "dev",
    "prefer-stable" : true,
    "autoload": {
        "psr-4": {
            "": "src/"
        }
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": [
        {
            "url": "bitbucket url",
            "type": "vcs"
        }
    ],
    "require": {
        "php": ">=5.5.9",
        "antoineb1/smoney_bundle": "1.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

BVe*_*rov 32

版本约束"1.0"内部解释"1.0.0.0-stable"版本.

但唯一可用的版本是:

antoineb1/smoney_bundle [DEV-主].

因此,您可以将指定版本更改为以下任一版本,具体取决于适合您的版本:

  • 1.0.*(由作曲家看作>=1.0.0.0-dev <1.1.0.0-dev- 可能不起作用,因为该包中显然没有任何版本)
  • dev-master
  • dev-master#<hash>
  • @dev
  • 等等

请参阅composer架构以供参考.

  • 问题是我的标签是`1.1.0`并且应该是`v1.1.0`!天哪,我讨厌电脑...... (13认同)
  • @GuillaumeBois Composer 允许通过将分支指定为 `dev-&lt;branchname&gt;` 来使用分支作为版本,因此 `dev-master` 与 `master` 分支相关。如果你想指定一个特定的标签,它就像 `"author/package": "dev-master#v1.1.0"`。有关详细信息,请参阅 [此问题](http://stackoverflow.com/questions/34784809/how-to-use-a-specific-tag-version-with-composer-and-a-private-git-repository)。 (2认同)

Mik*_*iLL 8

@Guillaume在此答案下方的评论值得进行更大的介绍。

看来,作曲家想要一个git的版本,有一个v在里面。

所以应该是v1.1.0,不是1.1.0

我花了大约90分钟的时间

mikeill/my_repo 3.3.10 requires composer/installers 1.0.*@dev -> satisfiable by composer/installers[1.0.x-dev, v1.0.0, ...] but these conflict with your requirements or minimum-stability.

在最终发现此线程之前,还有很多github问题以及一两个SO帖子。


小智 8

有一段时间我在这个问题上失去了大量的头发、时间和理智 - 结果证明我的问题是我在包本身的 composer.json 中将一个版本指定为“dev-master”。

参考:https : //getcomposer.org/doc/04-schema.md#version

它指出:

注意:Packagist 使用 VCS 存储库,因此上面的陈述对于 Packagist 也非常正确。由于人为错误,您自己指定版本很可能最终会在某些时候产生问题

(强调我的)

我删除了这个版本元素,它工作得很好:)