68 votes

Pourquoi la mise à jour des dépendances dans Composer est-elle si lente?

Je suis à l'aide de compositeur (http://getcomposer.org/) pour gérer installé bundles Symfony2 (symfony v 2.1.3). La Version du compositeur est de3188c. J'ai un problème que lorsque j'ajoute un nouveau bundle dans le compositeur.json et exécuter les temps à afficher des messages sur la mise à Jour des dépendances et ensuite de les télécharger tout est très faible. J'ai ces données dans le compositeur.json (voir ci-dessous) et le temps d'exécution est d'environ 20 MINUTES!!! La connexion internet est assez rapide pour que je puisse télécharger de gros fichiers très rapide...

Est-il une astuce pour le rendre plus rapide?

{
"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": [
        "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"
    ]
},
"minimum-stability": "dev",
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web"
}

}

80voto

Roberto Points 728

Essayez de spécifier une version pour chaque dépendance dans composer.json et utilisez l’option --prefer-dist lorsque vous appelez composer. Il téléchargera les fichiers ZIP des référentiels (si disponibles) au lieu des fichiers uniques.

 php composer.phar install --prefer-dist
 

23voto

badcook Points 540

Depuis que vous avez accepté la réponse, il semble que cela a résolu votre problème. Juste au cas où quelqu'un d'autre bute sur cette question, même si (comme je le faisais quand j'étais à la recherche), dans mon cas, une très lente Compositeur installer a eu à faire avec ma version de PHP (mot d'avertissement, je suis une complète et totale Compositeur débutant), même si le Compositeur a couru à travers ses contrôles standardisés et a dit que tout allait bien. - Je exécuter Ubuntu 12.04 LTS et a été trop paresseux pour mettre à niveau à partir de la valeur par défaut de PHP 5.3.10 (la même version que vous utilisez) dans la Précision des pensions.

L'installation de Rameau par le Compositeur à l'origine m'a pris environ 30 minutes. J'ai donné jusqu'à l'installation de la Doctrine après il a fallu plus d'une heure. J'ai mis à 5.4.17 (à l'aide de ce PPA https://launchpad.net/~ondrej/+archive/php5) et à l'installation de la Doctrine a été fait en quelques secondes.

15voto

Elijah Lynn Points 742

J'ai trouvé que c'est aussi très lent, dans les dizaines de minutes lentes.

Pour moi, j'ai ajouté -vvv et j'ai trouvé qu'il était suspendu à des choses comme Downloading https://packagist.org/p/provider-active$53cdf887c8d2925b3501f47d6980fb7bda2310716369bf7a84857c6e62bbab0f.json

Je suis ensuite allé sur le navigateur et essayé de télécharger ce fichier JSON et bien sûr. C'était packagist.org pour être la cause de la lenteur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X