Почему обновление зависимостей в composer происходит так медленно?


Я использую composer (http://getcomposer.org/) для управления установленными пакетами в Symfony2 (symfony v 2.1.3). Версия композитора -de3188c.

у меня есть проблема, что когда я добавляю новый пакет в композитор.json и выполнить его время, чтобы показать сообщения об обновлении зависимостей и затем загрузить их все очень низко.

у меня есть эти данные в композитора.json (см. ниже) и время выполнения составляет примерно 20 минут!!! Этот подключение к Интернету достаточно быстро я могу скачать большие файлы очень быстро...

есть ли какой-нибудь трюк, чтобы сделать это быстрее?

{
"name": "symfony/framework-standard-edition",
"description": "The "Symfony Standard Edition" distribution",
"autoload": {
    "psr-0": { "": "src/" }
},
"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.1.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.0.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.1.*",
    "symfony/swiftmailer-bundle": "2.1.*",
    "symfony/monolog-bundle": "2.1.*",
    "sensio/distribution-bundle": "2.1.*",
    "sensio/framework-extra-bundle": "2.1.*",
    "sensio/generator-bundle": "2.1.*",
    "jms/security-extra-bundle": "1.2.*",
    "jms/di-extra-bundle": "1.1.*",
    "doctrine/doctrine-fixtures-bundle": "dev-master",
    "webignition/doctrine-migrations-bundle": "dev-master"
},
"scripts": {
    "post-install-cmd": [
        "SensioBundleDistributionBundleComposerScriptHandler::buildBootstrap",
        "SensioBundleDistributionBundleComposerScriptHandler::clearCache",
        "SensioBundleDistributionBundleComposerScriptHandler::installAssets",
        "SensioBundleDistributionBundleComposerScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "SensioBundleDistributionBundleComposerScriptHandler::buildBootstrap",
        "SensioBundleDistributionBundleComposerScriptHandler::clearCache",
        "SensioBundleDistributionBundleComposerScriptHandler::installAssets",
        "SensioBundleDistributionBundleComposerScriptHandler::installRequirementsFile"
    ]
},
"minimum-stability": "dev",
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web"
}
5 66

5 ответов:

попробуйте указать версию для каждой зависимости в composer.json и использовать опцию --prefer-dist при вызове composer. Он будет загружать ZIP-файлы из репозиториев (если таковые имеются) вместо отдельных файлов.

php composer.phar install --prefer-dist

поскольку вы приняли ответ, похоже, что это решило вашу проблему. На всякий случай, если кто-то еще наткнется на этот вопрос (как и я, когда я искал), в моем случае очень медленная установка композитора была связана с моей версией PHP (слово предупреждения, я полный и полный новичок в композиторе), хотя композитор прошел через свои стандартные проверки и сказал, что все в порядке. Я запускаю Ubuntu 12.04 LTS и был слишком ленив, чтобы обновить PHP по умолчанию 5.3.10 (та же версия вы работаете) в точном РЕПО.

установка Twig через Composer первоначально заняла у меня около 30 минут. Я отказался от установки доктрины после того, как это заняло больше часа. Я обновился до 5.4.17 (используя этот PPA https://launchpad.net/~ondrej / + archive / php5) и установка доктрины была выполнена за считанные секунды.

я обнаружил, что это также очень медленно, в десятки минут.

для меня, я добавил -vvv и обнаружил, что он висит на таких вещах, как Downloading https://packagist.org/p/provider-activecdf887c8d2925b3501f47d6980fb7bda2310716369bf7a84857c6e62bbab0f.json

затем я пошел в браузер и попытался загрузить этот файл JSON и, конечно же, достаточно. Это было ... packagist.org быть причиной медлительности.

в моем случае, приведенные выше предложения не имеют значения. Зачем было использовать HTTPS протокол packagist:

php composer.phar config --global repo.packagist composer https://packagist.org

или

composer config --global repo.packagist composer https://packagist.org

в зависимости от настройки

для диагностики этого использования я использовал требуются С -ВВВ.

composer require larapack/dd -vvv

в моем случае я обнаружил, что медленная скорость композитора была из-за FXP/composer-asset-plugin.

composer global show
composer global remove fxp/composer-asset-plugin

и вуаля