123 votes

Pourquoi composer install expire-t-il après 300 secondes ?

J'ai un petit projet fait en symfony2 quand j'essaie de le construire sur mon serveur, cela échoue toujours lors du dézippage de Symfony. La construction s'est bien passée et soudainement, composer ne dézippe pas Symfony et je n'ai rien changé. J'ai essayé de construire avec Jenkins et aussi manuellement en bash avec le même résultat. Ce n'est pas un problème de permissions et la connexion internet sur mon serveur est également bonne.

Chargement des dépôts composer avec des informations sur les packages
Installation des dépendances (y compris celles requises pour le développement) à partir du fichier de verrouillage
 - Installation de symfony/symfony (v2.3.4)
 Téléchargement : 100%
[Symfony\Component\Process\Exception\ProcessTimedOutException]
Le processus "unzip '/chemin/vendor/symfony/symfony/6116f6f3
d4125a757858954cb107e64b' -d 'vendor/composer/b2f33269' && chmod -R u+w 'vendor/composer/b2f33269'" a dépassé le délai limite de 300 secondes.

156voto

nifr Points 17866

Vérifiez avec composer update/install -o -vvv si le package est chargé depuis le cache de Composer.

Si c'est le cas, essayez de vider le cache de Composer ou essayez d'ajouter --cache-dir=/dev/null.

Pour forcer le téléchargement d'une archive au lieu de cloner les sources, utilisez l'option --prefer-dist en combinaison avec --no-dev.

Sinon, vous pouvez essayer d'augmenter la valeur du timeout du processus de Composer :

export COMPOSER_PROCESS_TIMEOUT=600 # la valeur par défaut est 300

103voto

Ali Motameni Points 524
composer config --global process-timeout 2000

95voto

riguang zheng Points 370

La méthode la plus simple est d'ajouter une option de configuration au fichier composer.json, Ajouter process-timeout 0, C'est tout. Ça marche n'importe où.

{
  .....
  "scripts": {
    "start": "php -S 0.0.0.0:8080 -t public public/index.php"
  },
  "config": {
    "process-timeout":0
  }
}

40voto

Tahir Yasin Points 3525

Composer impose lui-même une limite sur la durée pendant laquelle il autoriserait l'opération git à distance. Un coup d'œil à la documentation de Composer confirme que la variable d'environnement COMPOSER_PROCESS_TIMEOUT régit cela. La variable est définie avec une valeur par défaut de 300 (secondes) qui semble ne pas être suffisante pour une opération de clonage de grande taille utilisant une connexion Internet lente.

Augmentez cette valeur en utilisant:

COMPOSER_PROCESS_TIMEOUT=2000 composer install

9voto

Daydream Nation Points 81

Ancien fil de discussion mais nouveau problème pour moi. Aucune des solutions ici ne fonctionnait lorsque j'essayais d'installer google/apiclient (cela a échoué sur google/apiclient-services) sur une machine virtuelle Ubuntu dans un hôte Windows 10.

Après avoir remarqué que l'exécutable "antimalware" de Windows consommait beaucoup de cycles CPU lors de cette installation/mise à jour via composer, j'ai désactivé la "protection en temps réel" sur la machine Windows 10, et mon mise à jour/installation via composer a fonctionné!!

J'espère que cela aidera quelqu'un.

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