Ошибка обновления php composer.phar - опечатка в имени пакета

Я создал новый проект Symfony 2.1 и добавил пользовательский пакет, загруженный репозиторием SVN. Теперь я пытаюсь обновить проект до Symfony 2.2, но каждый раз, когда я пытаюсь выполнить команду php ~/bin/composer.phar update, появляется следующее сообщение об ошибке:

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
  - The requested package custom/utils could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

Это Symfony 2.2 composer.json:

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "svn+ssh://sources.de.ext/usr/local/svnroot/utils"
        }
    ],
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.2.*",
        "doctrine/orm": "~2.2,>=2.2.3",
        "doctrine/doctrine-bundle": "1.2.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.2.*",
        "symfony/monolog-bundle": "2.2.*",
        "sensio/distribution-bundle": "2.2.*",
        "sensio/framework-extra-bundle": "2.2.*",
        "sensio/generator-bundle": "2.2.*",
        "jms/security-extra-bundle": "1.4.*",
        "jms/di-extra-bundle": "1.3.*",
        "custom/utils": "*"
    },
    "scripts": {
        "post-install-cmd": [
            "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": [
            "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": "alpha",
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "branch-alias": {
            "dev-master": "2.2-dev"
        }
    }
}

Пользовательские утилиты имеют следующие composer.json:

{
    "name": "custom/utils",
    "version": "1.0.0",
    "description": "The Custom Libraries",
    "autoload": {
        "psr-0": { 
            "Blogo": "src/",
            "WideImage": "lib/"
        }
    },
    "require": {
        "symfony/console": "2.*",
        "symfony/yaml": "2.*"
    }
}

Может ли кто-нибудь помочь мне понять, что не так в новом 2.2 Symfony? Поскольку это сообщение об ошибке появляется только при обновлении Symfony 2.2.


person freedev    schedule 03.04.2013    source источник
comment
Попробуйте заменить * в строке "custom/utils": "*" на dev-master   -  person Eduard Luca    schedule 04.04.2013
comment
Спасибо, я попробовал с "custom/utils": "1.0.0" и получил сообщение об ошибке: The requested package custom/utils 1.0.0 could not be found.   -  person freedev    schedule 04.04.2013
comment
1.0.0 может быть недействительной версией. Насколько я знаю, большинство пакетов используют dev-master (хотя я новичок в Symfony).   -  person Eduard Luca    schedule 04.04.2013
comment
1.0.0 это действующая версия. Я создал пакет custom/utils версии 1.0.0, и composer update работал довольно хорошо до того, как я обновился до Symfony 2.2...   -  person freedev    schedule 04.04.2013
comment
Тогда я думаю, вам нужно добавить свой собственный репозиторий: getcomposer.org/doc/04-schema .md#репозитории. Я почти уверен, что тот, который у вас есть прямо сейчас, недействителен.   -  person Eduard Luca    schedule 04.04.2013
comment
Вы когда-нибудь догадывались об этом?   -  person taco    schedule 08.03.2015


Ответы (1)


Попробуйте запустить composer update --verbose или composer show custom/utils --verbose. Оба покажут вам некоторый вывод о загрузке вашего репозитория SVN. Он должен указывать, какие версии загружены или нет.

Я предполагаю, что у вас есть версия dev-trunk, и если она вам потребуется, она, скорее всего, будет работать. Вы не должны указывать version: 1.0.0 в вашем composer.json, потому что композитор считывает информацию о версии из тегов/ветвей в вашей системе контроля версий.

person Seldaek    schedule 03.04.2013
comment
Я попытался последовать вашему предложению, поэтому я удалил версию в "custom/utils" composer.json. Ничего не изменилось. После того, как я попытался указать "trunk" как версию в Symfony 2.2 composer.json. Появилось новое сообщение об ошибке: "Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for blogo/utils trunk -> satisfiable by blogo/utils dev-trunk. - Removal request for blogo/utils == 9999999-dev - person freedev; 04.04.2013
comment
Версия dev-trunk, а не trunk. Composer добавляет к именам веток префикс dev-, чтобы четко идентифицировать их как нестабильные цели (по сравнению с тегами, которые не меняются со временем). - person Seldaek; 04.04.2013