Composer包安装失败:依赖版本冲突问题求助
Composer包安装失败问题
您的依赖要求无法解析为一组可安装的软件包。
错误详情
问题1 - 根目录下的composer.json要求realdriss/platform ^1.0 -> 可由realdriss/platform[v1.0.0]满足。 - realdriss/platform v1.0.0要求kris/laravel-form-builder 1.16.x-dev -> 已找到kris/laravel-form-builder[dev-master, 0.1.8, 1.0, ..., 1.52.x-dev (别名dev-master), 2.x-dev],但不符合版本约束。 问题2 - realdriss/platform v1.0.0要求kris/laravel-form-builder 1.16.x-dev -> 已找到kris/laravel-form-builder[dev-master, 0.1.8, 1.0, ..., 1.52.x-dev (别名dev-master), 2.x-dev],但不符合版本约束。 - realdriss/shortcode v1.0.0要求realdriss/platform *@dev -> 可由realdriss/platform[v1.0.0]满足。 - 根目录下的composer.json要求realdriss/shortcode ^1.0 -> 可由realdriss/shortcode[v1.0.0]满足。
执行的命令
composer install --prefer-source
我的composer.json内容
{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": [ "framework", "laravel" ], "license": "MIT", "type": "project", "require": { "php": "^7.3|^8.0", "ext-curl": "*", "ext-json": "*", "ext-zip": "*", "beyondcode/laravel-websockets": "^1.14", "realdriss/menu": "^1.0", "realdriss/page": "^1.0", "realdriss/platform": "^1.0", "realdriss/plugin-management": "^1.0", "realdriss/shortcode": "^1.0", "realdriss/theme": "^1.0", "doctrine/dbal": "^3.0", "fideloper/proxy": "^4.4", "fruitcake/laravel-cors": "^2.0", "gathuku/laravelmpesa": "^1.2", "guzzlehttp/guzzle": "^7.0.1", "laravel/framework": "^8.12", "league/flysystem-aws-s3-v3": "^1.0", "pusher/pusher-php-server": "~3.0", "realdriss/sitemap": "*", "wikimedia/composer-merge-plugin": "^2.0" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.2", "barryvdh/laravel-ide-helper": "^2.6", "beyondcode/laravel-dump-server": "^1.9", "facade/ignition": "^2.5", "fakerphp/faker": "^1.10", "laravel/sail": "^1.0.1", "laravel/tinker": "^2.5", "mockery/mockery": "^1.4.2", "nunomaduro/collision": "^5.2", "phpunit/phpunit": "^9.3.3" }, "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "extra": { "laravel": { "dont-discover": [] }, "merge-plugin": { "include": [], "recurse": false, "replace": false, "ignore-duplicates": false, "merge-dev": false, "merge-extra": false, "merge-extra-deep": false, "merge-scripts": false }, "google/apiclient-services": [ "Analytics" ] }, "scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-update-cmd": [ "Google\\Task\\Composer::cleanup" ] }, "config": { "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true, "allow-plugins": { "wikimedia/composer-merge-plugin": true } }, "minimum-stability": "dev", "prefer-stable": true, "repositories": [] }
解决方案
冲突原因:
realdriss/platform v1.0.0依赖的kris/laravel-form-builder 1.16.x-dev版本不存在,该包公开版本中无此分支,仅提供dev-master、0.x、1.x(最高1.52.x-dev)和2.x-dev版本。可行解决办法:
- 升级依赖版本:修改
composer.json中realdriss/platform的版本要求为更高兼容版本(如^2.0),需确认与其他依赖的兼容性。 - 版本别名覆盖:在
composer.json的require中添加版本别名,将现有可用版本伪装成所需版本,需确认版本功能兼容:"require": { // 其他依赖保持不变 "kris/laravel-form-builder": "1.52.x-dev as 1.16.x-dev" } - 添加仓库源:若
realdriss/platform有未同步到Packagist的分支,在repositories中添加其仓库地址:"repositories": [ { "type": "vcs", "url": "https://github.com/realdriss/platform.git" } ]
- 升级依赖版本:修改
内容的提问来源于stack exchange,提问作者Godwin Waswa
相关产品推荐
相关产品推荐

