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

ajsxfq5m  于 2023-09-29  发布在  PHP
关注(0)|答案(6)|浏览(131)

当我从composer运行我的安装时,我有这个错误:
λ composer install您正在运行启用了xdebug的composer。这对运行时性能有重大影响。请参阅https://getcomposer.org/xdebug使用软件包信息加载composer存储库更新依赖项(包括require-dev)无法将您的需求解析为可安装的软件包集。
错误代码:
问题1 -请求的软件包antoineb 1/smoney_bundle 1.0以antoineb 1/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"
    }
}
uklbhaso

uklbhaso1#

版本约束"1.0"interpreted internally作为"1.0.0.0-stable"版本。
但唯一可用的版本是:
antoineb1/smoney_bundle[dev-master].
因此,您可以根据适合您的版本将指定版本更改为以下任一版本:

  • 1.0.*(composer将其视为>=1.0.0.0-dev <1.1.0.0-dev--可能无法工作,因为该包中显然没有任何版本)
  • dev-master
  • dev-master#<hash>
  • @dev

参见composer schema以供参考。

23c0lvtd

23c0lvtd2#

@Guillaume在this answer下面的评论值得更大的介绍。
看来 composer 想要一个有vgit release
所以应该是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帖子。

wz3gfoph

wz3gfoph3#

有一段时间,我在这个问题上失去了大量的头发,时间和理智-事实证明,我的问题是,我在包本身的composer.json中指定了一个版本为“dev-master”。
参考:https://getcomposer.org/doc/04-schema.md#version
其中规定:
注意:Packagist使用的是可扩展的存储库,所以上面的陈述对Packagist来说也是非常正确的。自己指定版本很可能会在某些时候产生问题由于人为错误。

  • (强调我的)*

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

n9vozmp4

n9vozmp44#

我遇到了这个问题,并发现了另一个问题,我已经完全忘记了,有人可能会发现有用的必须检查。
在我的例子中,我有一个非常老的git项目,它已经被forked了一段时间,我不得不将它们合并在一起(尽管forked项目没有太多的变化)。所以我确定了旧项目的分割点,并将其标记为composer版本,这样我就可以用它来代替新项目。
但我忘了,最初我们并没有使用composer。因此,标记点处的文件结构缺少composer.json。我不明白为什么我的新标签没有出现在“存在”列表中,这些列表中的东西“被你的禁忌拒绝”。最终我意识到我必须在旧标签上创建一个分支,选择为项目创建composer.json的提交,并重新标记,然后一切都工作了。
希望这将唤起某人的记忆,如果他们来狩猎与此错误信息铭记。

vdzxcuhz

vdzxcuhz5#

搜索了一会儿后,我发现我的composer文件中缺少存储库。有人删除了它,因此只有以前的版本有效。

...

"require": {
    "company/my-repo": "*"
}

...

"repositories": [
    {
        "type": "vcs",
        "url": "[email protected]:company/my-repo.git"
    },
],

...
js5cn81o

js5cn81o6#

我创建了标签和发布,并将repo发布到Packagist。什么都不管用!我不得不将仓库添加到composer.json中的“repositories”键中:

"repositories": {
    "andreshg112/aws-sns": {
        "type": "vcs",
        "url": "https://github.com/andreshg112/aws-sns.git"
    }
}

相关问题