Quber
@Quber
PHP Team lead

Почему появляется ошибка при установке репозиториев через composer и как её исправить?

Установил composer. Затем через него Symfony 2. Потом установил несколько бандлов для SF2.
При установке некоторых бандлов возникают ошибки, а при установке остальных - нет. В чём магия? Другие ведь как то качают и устанавливают эти репозитории?

Вот пример, при установке "sonata-project/news-bundle" в консоли выводится следующее:
$ composer.phar update sonata-project/news-bundle
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: remove symfony/symfony v2.3.7
    - Installation request for sonata-project/news-bundle dev-master -> satisfiable by sonata-project/news-bundle[dev-master].
    - friendsofsymfony/user-bundle v1.3.0 requires symfony/security-bundle 2.1.* -> satisfiable by symfony/symfony[2.1.x-dev, v2.1.0, v2.1.1, v2.1.10, v2.1.11, v2.1.12, v2.1.13, v2.1.2, v2.1.3, v2.1.4, v2.1.5, v2.1.6, v2.1.7, v2
.1.8, v2.1.9], symfony/security-bundle[2.1.x-dev, v2.1.0, v2.1.1, v2.1.10, v2.1.11, v2.1.12, v2.1.13, v2.1.2, v2.1.3, v2.1.4, v2.1.5, v2.1.6, v2.1.7, v2.1.8, v2.1.9].
    - friendsofsymfony/user-bundle v1.3.1 requires symfony/security-bundle >=2.1,<2.3-dev -> satisfiable by symfony/symfony[2.1.x-dev, 2.2.x-dev, v2.1.0, v2.1.1, v2.1.10, v2.1.11, v2.1.12, v2.1.13, v2.1.2, v2.1.3, v2.1.4, v2.1.5
, v2.1.6, v2.1.7, v2.1.8, v2.1.9, v2.2.0, v2.2.1, v2.2.10, v2.2.2, v2.2.3, v2.2.4, v2.2.5, v2.2.6, v2.2.7, v2.2.8, v2.2.9], symfony/security-bundle[2.1.x-dev, 2.2.x-dev, v2.1.0, v2.1.1, v2.1.10, v2.1.11, v2.1.12, v2.1.13, v2.1.2
, v2.1.3, v2.1.4, v2.1.5, v2.1.6, v2.1.7, v2.1.8, v2.1.9, v2.2.0, v2.2.1, v2.2.10, v2.2.2, v2.2.3, v2.2.4, v2.2.5, v2.2.6, v2.2.7, v2.2.8, v2.2.9].
    - Can only install one of: symfony/symfony[v2.3.7, 2.1.x-dev].
    - Can only install one of: symfony/symfony[v2.3.7, 2.2.x-dev].
..................................
- don't install symfony/security-bundle v2.1.8|don't install symfony/symfony v2.3.7
    - don't install symfony/security-bundle v2.1.9|don't install symfony/symfony v2.3.7
    - Installation request for symfony/symfony == 2.3.7.0 -> satisfiable by symfony/symfony[v2.3.7].
    - Conclusion: remove friendsofsymfony/user-bundle dev-master|install friendsofsymfony/user-bundle v1.3.0|install friendsofsymfony/user-bundle v1.3.1
    - sonata-project/news-bundle dev-master requires sonata-project/user-bundle ~2.2 -> satisfiable by sonata-project/user-bundle[2.2.0, 2.2.x-dev].
    - sonata-project/user-bundle 2.2.0 requires friendsofsymfony/user-bundle ~1.3 -> satisfiable by friendsofsymfony/user-bundle[1.3.x-dev, v1.3.0, v1.3.1, v1.3.2, v1.3.3].
    - sonata-project/user-bundle 2.2.x-dev requires friendsofsymfony/user-bundle ~1.3 -> satisfiable by friendsofsymfony/user-bundle[1.3.x-dev, v1.3.0, v1.3.1, v1.3.2, v1.3.3].
    - Can only install one of: friendsofsymfony/user-bundle[dev-master, 1.3.x-dev].
    - Can only install one of: friendsofsymfony/user-bundle[v1.3.2, dev-master].
    - Can only install one of: friendsofsymfony/user-bundle[v1.3.3, dev-master].
    - Installation request for friendsofsymfony/user-bundle dev-master -> satisfiable by friendsofsymfony/user-bundle[dev-master].

Пытался понять текст ошибки, но так и не разобрался чего он хочет. Написано в problem 1: Удалите Симфони2. Блин зачем мне её удалять, если без неё бандл не будет работать? Короче не могу разобраться, помогите пожалуйста..

Файл composer.json
{
    "name": "symfony/framework-standard-edition",
    "license": "MIT",
    "type": "project",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.3.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.2.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.3.*",
        "symfony/swiftmailer-bundle": "2.3.*",
        "symfony/monolog-bundle": "2.3.*",
        "sensio/distribution-bundle": "2.3.*",
        "sensio/framework-extra-bundle": "2.3.*",
        "sensio/generator-bundle": "2.3.*",
        "incenteev/composer-parameter-handler": "~2.0",
        "sonata-project/admin-bundle": "dev-master",
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",
        "sonata-project/easy-extends-bundle": "dev-master",
        "sonata-project/news-bundle": "dev-master",
        "friendsofsymfony/user-bundle": "dev-master",
        "friendsofsymfony/comment-bundle": "dev-master",
        "knplabs/knp-menu-bundle":"1.1.*",
        "knplabs/knp-paginator-bundle": "dev-master"
    },
    "scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "config": {
        "bin-dir": "bin"
    },
    "minimum-stability": "dev",
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        },
        "branch-alias": {
            "dev-master": "2.3-dev"
        }
    }
}
  • Вопрос задан
  • 5836 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Нечего в версиях пакетов писать dev-master. У вас проблемы с версиями зависимостей. А именно:
friendsofsymfony/user-bundle v1.3.0 требует symfony/security-bundle 2.1.*

В предложениях он предлагает удалить не symfony а symfony/security-bundle, либо же поменять версию fos/user-bundle. Скорее всего виновник всего этого дела - sonata/user-bundle, которому просто нужно прописать нужную версию.

p.s. с сонатой вы не можете позволить себе такой роскоши как "dev-master", ибо разработчики очень любят все таким вот образом ломать даже в минорных релизах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы