【发布时间】:2021-10-11 14:27:17
【问题描述】:
我创建了一个包并将它放在一个从私有 Bitbucket 存储库中获取的私有 Packagist 上。在我尝试安装软件包之前,这一切都很好。我的 composer.json 看起来像这样:
{
"name": "XXXX/fields",
"description": "Field processor for easy saving and updating",
"type": "library",
"autoload": {
"psr-4": {
"XXXX\\Fields\\": "src/"
}
},
"authors": [
{
"name": "This Nerd",
"email": "This.Nerd@XXXX.nl"
}
],
"require": {},
"extra": {
"laravel": {
"providers": [
"XXXX\\Field\\FieldServiceProvider"
],
"aliases": {
"Field": "XXXX\\Field\\Facades\\Initiators\\Field"
}
}
}
}
安装composer时发现与其他包冲突:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- psr/cache 3.0.0 requires php >=8.0.0 -> your php version (7.4.19) does not satisfy that requirement.
- zircote/swagger-php 3.2.3 requires doctrine/annotations ^1.7 -> satisfiable by doctrine/annotations[1.13.1].
- darkaonline/l5-swagger 8.0.7 requires zircote/swagger-php 3.* -> satisfiable by zircote/swagger-php[3.2.3].
- doctrine/annotations 1.13.1 requires psr/cache ^1 || ^2 || ^3 -> satisfiable by psr/cache[3.0.0].
- darkaonline/l5-swagger is locked to version 8.0.7 and an update of this package was not requested.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
如您所见,我还不需要任何包,也没有在我的 composer.json 中定义任何要求。 packagist 中的当前版本标签是 1.0.1。获取作曲家时尝试“使用版本 ^1.0”。所以这一切看起来都很好,但事实并非如此。
欢迎提出任何建议。
【问题讨论】:
-
您是否在 BitBucket 存储库中发布了版本?此外,您尝试要求的包可以有自己的一组依赖项。顺便说一句,根据错误消息,psr/cache 需要 PHP 8 但你有 PHP 7.4
-
刚刚发现它确实是php版本。我在本地命令行(php 7.4)上运行composer require,而我需要在sail(php 8.0)中这样做。用上面的回答我会标记它
-
在我看来,这只是需要考虑的版本差异。所以,我会顺其自然。如果您喜欢或可能删除该问题,您可以自己回答。
-
你运行的命令是什么?这甚至与那个包有关,还是与您的应用程序的其余部分有关?
标签: php composer-php packagist