Wenn ich a ausführe composer update
, wird folgende Fehlermeldung angezeigt:
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
Was muss ich tun, um die Befehle zip und unzip zu aktivieren, damit Composer Abhängigkeiten herunterladen kann?
php
composer-php
b85411
quelle
quelle
composer update --prefer-source
Ich hatte dieses Problem beim Versuch,composer update
phpspec zu verwenden.Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping.
Ich bin auf einem Mac und hatte Probleme, Homebrew zum Installieren von PHP-Erweiterungen zu bringen. Meine schnelle Lösung bestand darin, durch Hinzufügen der Option --prefer-source zu erzwingen, dasscomposer
kein Zip verwendet werden muss. Dies bedeutet, dass das Repo anstelle eines komprimierten Pakets heruntergeladen wird. Keine langfristige Lösung, aber praktisch zu wissen.Antworten:
Abhängig von Ihrer Linux- und PHP-Version können diese variieren.
Dies ist eine sehr häufig gestellte Frage. Sie können weitere nützliche Informationen im Äther finden, indem Sie suchen
<distro> php <version> zip extension
.quelle
apt-get install php-zip
ist ausreichendphp[version]-package
vsphp-package
für ein bestimmtes Paket installieren müssen ? Würde gerne wissen, wie ich normalerweise nur mit derphp[version]-package
Version gehe , aber vielleicht ist das nicht optimal ...php-<package>
ist die Standardversion. Diese Pakete hängen nur von der neuesten Version ab. Wenn Sie einige konkrete (meist ältere) Version benötigen, installieren Siephp<version>-<package>
.# yum install zip unzip php7.2-zip
(unter CentOS 7)Für Server mit PHP 5.6
quelle
Für Debian Jessie (dies ist die aktuelle Standardeinstellung für das PHP-Image auf Docker Hub):
Sie können --yes weglassen, aber es ist nützlich, wenn Sie es in einer Docker-Datei ausführen.
quelle
php-zip
Für ältere Ubuntu-Distributionen dh 16.04, 14.04, 12.04 usw.
quelle
Ich hatte PHP7.2 auf einem Ubuntu 16.04 Server und es löste mein Problem:
sudo apt-get install zip unzip php-zip
Aktualisieren
Versuchte dies für Ubuntu 18.04 und funktionierte auch.
quelle
Ich benutze Ubuntu und mit dem folgenden Befehl hat funktioniert
apt-get install --yes zip unzip
quelle
Nicht um den Punkt zu beleuchten, aber wenn Sie in einem arbeiten
Dockerfile
, würden Sie dieses spezielle Problem mit Composer lösen, indem Sie dasunzip
Dienstprogramm installieren . Unten finden Sie ein Beispiel für die Installation des offiziellen PHP-Imagesunzip
und derzip
PHP-Erweiterung.Dies ist ein hilfreiches GitHub-Problem, bei dem das oben Genannte liebevoll behoben wurde.
quelle
Wenn Sie Ubuntu und PHP 7.2 verwenden , verwenden Sie diese ...
quelle
Ich habe diesen Fehler erhalten, als ich Laravel 5.5 auf meinem Digitalocean Cloud Server (Ubuntu 18.04 und PHP 7.2) installiert habe und der folgende Befehl ihn behoben hat.
quelle
Auf Docker mit Bild
php:7.2-apache
brauchte ich nur zip und entpacken. Keine Notwendigkeit für PHP-Zip:apt-get install zip unzip
oder Dockerfile
quelle
Eigentlich scheint der Komponist heutzutage ohne den
zip
Befehlszeilenbefehl zu funktionieren , daherphp-zip
sollte die Installation ausreichen --- ABER es würde eine Warnung angezeigt:Siehe auch Gibt es ein Problem mit der Verwendung von PHP-Zip (Komponist warnt davor)
quelle