如何解决"您的要求无法解析为可安装的软件包"错误?

kyo*_*kyo 46 laravel composer-php laravel-4

当我运行时,composer update我收到一些有线输出.

在此输入图像描述

这是我的composer.json看起来像.

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.", "keywords": ["framework", "laravel"],
    "license": "MIT",
    "repositories": [{
        "type": "vcs",
        "url": "https://github.com/Zizaco/ardent.git"
    }],
    "require-dev": {
        "phpunit/phpunit": "4.3.*"
    },
    "require": {
        "laravel/framework": "4.2.*", 
        "laravelbook/ardent": "dev-master as 2.4.0", 
        "zizaco/entrust": "dev-master", 
        "sebklaus/profiler": "dev-master", 
        "doctrine/dbal": "dev-master"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations", "app/database/seeds", "app/tests",
            "app/libraries"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled", 
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled", 
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Sve*_*ven 33

您的软件依赖项具有不兼容的版本冲突.

同时你想安装任何Laravel 4.2.x版本,并从其主分支安装"zizaco/entrust".而且这个主分支至少需要Laravel 5.0(粗略地说).

问题来自对分支的依赖.zizaco /委托曾经在其主分支中使用Laravel 4.2,并且您可以在当天安装依赖项.但是,当这个分支使用不兼容的版本要求进行更新时,您将永远无法运行composer update并获得更新的依赖项.

始终使用标记版本!理想情况下,您使用允许兼容更新的宽松版本要求.这应该表示为波浪号 - 两个数字版本要求:~1.2将安装版本1.2.0及更高版本(如1.2.99或1.2.100),以及1.3及更高版本.如果您需要某个补丁版本:Caret-three-number版本^1.2.10将安装1.2.10或更高版本,也可以安装1.3及更高版本.

使用此版本要求而不是dev-master允许您在主分支中使用已发布的版本而不是不稳定状态,并允许您处理仍适用于Laravel 4.2的最新版本.我想这将是zizaco /委托版本1.3.0,但版本1.2也符合条件.跟着去"zizaco/entrust": "~1.2".

  • 这篇文章的关键答案是"zizaco/entrust":"~1.2"` (6认同)

小智 29

我面临同样的问题.我正在使用'Lumen'微服务框架.我最近通过安装两个软件包解决了同样的问题: -

  1. sudo apt-get install php7.0-mbstring,
  2. sudo apt-get install php7.0-xml或sudo apt-get install php-xml

安装完成后,需要执行以下命令: - composer update

希望,它会解决这个问题.我在我的系统上工作.

  • 我正在使用 Ubuntu 20.04。仅运行此命令就足够了:`sudo apt-get install php-xml` (2认同)

Viv*_*aru 26

最简单的解决方案是添加--ignore-platform-reqs标志。

如果您正在运行composer installcomposer update将其与--ignore-platform-reqs标志一起使用

例子

composer install --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)

或者

composer update --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题!


Guf*_*san 16

运行以下命令:

作曲家安装--ignore-platform-reqs

要么

作曲家更新--ignore-platform-reqs

  • 这需要一个解释 (27认同)
  • 使用 docker 时很有用。 (4认同)
  • 效果非常好!谢谢你! (3认同)
  • 使用这个有什么缺点吗? (3认同)

win*_*__7 9

我使用运行PHP 8Lavarel 8 的Windows 10机器,但遇到了同样的错误,我使用了以下命令:-

composer update --ignore-platform-reqs

无论版本冲突如何,都可以更新所有软件包。


Est*_*ask 7

这些dev-master是自动添加的吗?避免将它们作为不必要的版本限制,使用"任何合适的版本" "*",或者"@dev"如果您不介意开发包.我的猜测是Entrust是潜在的麻烦制造者.

此外,"minimum-stability": "stable"施加额外的限制,和

"minimum-stability": "dev",
"prefer-stable": true
Run Code Online (Sandbox Code Playgroud)

更加无冲突,认为这是一个经验法则.


Sar*_*val 7

我在 Laravel v8.49.0 (PHP v8.0.6) 中面临同样的问题。通过安装包使用 Composer
我最近通过安装两个包解决了同样的问题:-composer create-project laravel/laravel myapp

您的要求无法得到解决

作曲家更新

composer update --ignore-platform-reqs

或者
composer install --ignore-platform-reqs

检查启动服务器
php artisan serve

在此输入图像描述


nic*_*Des 5

我解决了'laravel/framework'"^8.0"to设置依赖版本的相同问题"^7.0"

在那之后运行composer update --ignore-platform-reqs简单地工作

作曲家.json