Lorsque j'exécute un, composer update
je reçois ce message d'erreur:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Failed to download psr/log from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini
Now trying to download from source
Que dois-je faire pour activer les commandes zip et unzip afin que le compositeur puisse télécharger les dépendances?
php
composer-php
b85411
la source
la source
composer update --prefer-source
J'ai eu ce problème en essayant decomposer update
phpspec.Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping.
Je suis sur un Mac et j'ai eu des problèmes pour faire fonctionner Homebrew pour installer les extensions php. Donc, ma solution rapide était de forcer àcomposer
ne pas avoir besoin d'utiliser zip en ajoutant l'option --prefer-source. Cela signifie qu'il télécharge le dépôt au lieu d'un package compressé. Ce n'est pas une solution à long terme mais pratique à connaître.Réponses:
En fonction de votre version de Linux et de PHP, celles-ci peuvent varier.
C'est une question très fréquemment posée, vous pourrez trouver des informations plus utiles dans l'éther en recherchant
<distro> php <version> zip extension
.la source
apt-get install php-zip
est suffisantphp[version]-package
ouphp-package
pour un paquet donné? J'adorerais savoir comme j'utilise habituellement laphp[version]-package
version, mais ce n'est peut-être pas optimal…php-<package>
est la version par défaut. Ces packages dépendent uniquement de la version la plus récente. Si vous avez besoin d'une version spécifique (généralement plus ancienne), vous installezphp<version>-<package>
.# yum install zip unzip php7.2-zip
(sur CentOS 7)Pour les serveurs avec PHP 5.6
la source
Pour Debian Jessie (qui est la valeur par défaut actuelle pour l'image PHP sur Docker Hub):
Vous pouvez omettre le --yes, mais c'est utile lorsque vous l'exécutez dans un Dockerfile.
la source
php-zip
: DPour les anciennes distributions Ubuntu, à savoir 16.04, 14.04, 12.04, etc.
la source
J'avais PHP7.2 sur un serveur Ubuntu 16.04 et cela a résolu mon problème:
sudo apt-get install zip unzip php-zip
Mettre à jour
J'ai essayé cela pour Ubuntu 18.04 et a également fonctionné.
la source
J'utilise Ubuntu et avec la commande suivante a fonctionné
apt-get install --yes zip unzip
la source
Ne pas insister sur ce point, mais si vous travaillez dans un
Dockerfile
, vous résoudriez ce problème particulier avec Composer en installant l'unzip
utilitaire. Voici un exemple utilisant l' image PHP officielle à installerunzip
et l'zip
extension PHP pour faire bonne mesure.C'est un problème GitHub utile dont ce qui précède est amoureusement levé.
la source
Si vous utilisez Ubuntu et PHP 7.2 , utilisez ceci ...
la source
J'ai eu cette erreur lorsque j'ai installé Laravel 5.5 sur mon serveur cloud digitalocean (Ubuntu 18.04 et PHP 7.2) et que la commande suivante l'a corrigée.
la source
Sur le docker avec image,
php:7.2-apache
j'avais juste besoin de zip et de décompresser. Pas besoin de php-zip:apt-get install zip unzip
ou Dockerfile
la source
En fait, composer de nos jours semble fonctionner sans la
zip
commande de ligne de commande, donc l'installationphp-zip
devrait suffire --- MAIS cela afficherait un avertissement:Voir aussi Y a-t-il un problème avec l'utilisation de php-zip (le compositeur en avertit)
la source