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

时间:2015-03-28 15:08:51

标签: laravel laravel-4 composer-php

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

enter image description here

这是我的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"
}

我该如何解决?

14 个答案:

答案 0 :(得分:27)

您的软件依赖项存在不兼容的版本冲突。

同时您要安装任何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"

答案 1 :(得分:23)

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

  1. sudo apt-get install php7.0-mbstring
  2. sudo apt-get install php7.0-xml 或sudo apt-get install php-xml
  3. 安装完成后,需要执行以下命令: - 作曲家更新

    希望,它将解决问题。我在我的系统上工作。

答案 2 :(得分:20)

运行此命令:

  

composer install --ignore-platform-reqs

  

composer update --ignore-platform-reqs

答案 3 :(得分:8)

我使用 Windows 10 机器与 PHP 8Lavarel 8 一起工作,但我遇到了同样的错误,我使用了以下命令:-

composer update --ignore-platform-reqs

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

答案 4 :(得分:7)

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

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

"minimum-stability": "dev",
"prefer-stable": true

更无冲突,认为这是一条经验法则。

答案 5 :(得分:2)

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

运行composer update --ignore-platform-reqs后就可以了

composer.json

答案 6 :(得分:1)

在composer.json

中的"barryvdh/laravel-cors": "^0.7.3"数组末尾添加require

保存composer.json并运行composer update

你完成了!

答案 7 :(得分:0)

“配置”:{   “平台”:{     “ ext-pcntl”:“ 7.2”,     “ ext-posix”:“ 7.2”   } }

答案 8 :(得分:0)

原因:

发生此错误是因为您的项目文件夹归root用户所有。

解决方案

将所有权更改为当前登录的用户,而不是root用户。如果只有root用户作为唯一用户,请创建另一个具有root特权的用户。

$ sudo chown -R 当前用户 / my / project / directory /

然后

$ composer安装

答案 9 :(得分:0)

我在Laravel 5.8中遇到了这个问题,我要做的是对每个库以及所有正确安装的库执行composer require

像这样:

而不是将其添加到composer.json文件或指定版本:

composer require msurguy/honeypot: dev-master

相反,我没有指定任何版本:

composer require msurguy/honeypot

我希望它会有所帮助,谢谢

答案 10 :(得分:0)

我通过添加"zizaco/entrust": "*"而不是"zizaco/entrust": "~1.2"解决了相同的错误。

答案 11 :(得分:0)

如果您使用的是 php ^8.0

打开可用的 php 版本列表

   sudo update-alternatives --config php

切换到PHP 7.2以上的旧版本,选择其中之一 然后更新作曲家

composer update

答案 12 :(得分:0)

我面临同样的问题。通过安装包使用 Composer
我最近通过安装两个软件包解决了同样的问题:-

<块引用>

composer create-project laravel/laravel myapp

your requirement could not be resolved

作曲家更新

<块引用>

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

<块引用>

composer install --ignore-platform-reqs

检查启动服务器

<块引用>

php artisan serve

enter image description here

答案 13 :(得分:-7)

只需激活php.ini文件中的curl

即可
;extension=php_curl.dll

extension=php_curl.dll

然后 composer install