首页 > 解决方案 > composer 只能安装以下之一:symfony/console

问题描述

我正在尝试从 laravel 5.1 升级到 5.3。尝试运行 composer update 时,没有说我正在尝试安装多个版本的 symfony/console。部分错误如下

Can only install one of: symfony/console[v3.1.0-BETA1, v2.8.9].
- Can only install one of: symfony/console[v3.1.0-BETA1, 2.7.x-dev].
- laravel/framework v5.3.0-RC1 requires symfony/console 3.1.* -> satisfiable by symfony/console[3.1.x-dev, v3.1.0, v3.1.0-BETA1, v3.1.0-RC1, v3.1.1, v3.1.10, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6, v3.1.7, v3.1.8, v3.1.9].
- Conclusion: don't install peridot-php/peridot 1.16.0|don't install symfony/console 3.1.x-dev
- Conclusion: don't install peridot-php/peridot 1.16.0|don't install symfony/console v3.1.10
peridot-php/peridot 1.16.0 requires symfony/console ~2.0 -> satisfiable by symfony/console[2.7.x-dev, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.x-dev

laravel 5.3 需要 symfony/console 3.1.*,但 peridot 的要求是 "symfony/console": "^2|^3"

我可能会误解某些东西,但 ^2|^3 是否意味着 2.* 或 3.* 会满足要求?

我的 composer.json

{
"name": "project/name",
"description": "description",
"type": "project",
"require": {
    "laravel/framework": "5.3.*",
    "doctrine/orm": "2.5.*@dev",
    "doctrine/collections": "1.2",
    "laracasts/flash": "~1.3",
    "symfony/yaml": "2.5.*@dev",
    "phpoffice/phpexcel": "dev-develop",
    "peridot-php/peridot": "1.16.0",
    "respect/validation": "0.8.*@dev",
    "filp/whoops": "1.*@dev",
    "davejamesmiller/laravel-breadcrumbs": "3.0.*",
    "facebook/webdriver": "1.0.1",
    "katzgrau/klogger": "dev-master",
    "laravel-doctrine/orm": "1.2.*",
    "laravelcollective/html": "5.3.*",
    "laravel-doctrine/extensions": "1.0.x-dev",
    "rdlowrey/auryn": "dev-master",
    "paragonie/random-lib": "^2.1@dev",
    "consolibyte/quickbooks": "3.4.*",
    "phpmailer/phpmailer": "dev-master",
    "defuse/php-encryption": "dev-master",
    "gedmo/doctrine-extensions": "2.4.1"
},
"require-dev": {
    "peridot-php/peridot-jumpstart": "~1.0",
    "peridot-php/peridot-prophecy-plugin": "~1.0",
    "satooshi/php-coveralls": "~0.6.1",
    "peridot-php/peridot-watcher-plugin": "~1.3",
    "fzaninotto/faker": "1.5.*",
    "symfony/dom-crawler": "~3.1",
    "symfony/css-selector": "~3.1"
},
"autoload": {
    "classmap": [
        "database",
        "src",
        "tests/unit"
    ],
    "psr-4": {
        "App\\": "app/",
        "OS\\":"src/"
    }
},
"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 -r \"copy('.env.example', '.env');\"",
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "dev"

}

标签: composer-php

解决方案


您的错误消息表明peridot-php/peridot您需要的包 v1.16 仅适用symfony/console于 version ~2.0,它等效于任何 2.x 版本,因此与symfony/consoleLaravel 所需的 3.x 版本不兼容。

peridot-php/peridot支持3.x 的第一个版本symfony/console是 1.18.1,因此您需要将依赖项提升到该版本才能正确支持 Symfony Console 3.x。


推荐阅读