Po uruchomieniu composer update
otrzymuję następujący komunikat o błędzie:
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
Co muszę zrobić, aby włączyć polecenia zip i unzip, aby kompozytor mógł pobierać zależności?
php
composer-php
b85411
źródło
źródło
composer update --prefer-source
Miałem ten problem podczas próby skorzystania zcomposer update
phpspec.Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping.
Używam komputera Mac i miałem problemy z uruchomieniem programu Homebrew w celu zainstalowania rozszerzeń php. Więc moje szybkie ustalenie było zmuszeniecomposer
nie do potrzeby korzystania zamek dodając opcję --prefer-source. Oznacza to, że pobiera repozytorium zamiast spakowanego pakietu. Nie jest to rozwiązanie długoterminowe, ale warto je znać.Odpowiedzi:
W zależności od wersji Linuksa i PHP mogą się one różnić.
To jest bardzo często zadawane pytanie, więcej przydatnych informacji znajdziesz w eterze, wyszukując
<distro> php <version> zip extension
.źródło
apt-get install php-zip
wystarczyphp[version]-package
a kiedyphp-package
dla danego pakietu? Chciałbym wiedzieć, jak zwykle po prostuphp[version]-package
php-<package>
jest wersją domyślną. Te pakiety zależą tylko od najnowszej wersji. Jeśli potrzebujesz określonej (zwykle starszej) wersji, zainstalujphp<version>-<package>
.# yum install zip unzip php7.2-zip
(na CentOS 7)Dla serwerów z PHP 5.6
źródło
Dla Debian Jessie (który jest bieżącym domyślnym obrazem PHP w Docker Hub):
Możesz pominąć - tak, ale jest to przydatne, gdy uruchamiasz go w pliku Dockerfile.
źródło
php-zip
: DW przypadku starszych dystrybucji Ubuntu, tj. 16.04, 14.04, 12.04 itd
źródło
Miałem PHP7.2 na serwerze Ubuntu 16.04 i rozwiązało to mój problem:
sudo apt-get install zip unzip php-zip
Aktualizacja
Wypróbowałem to dla Ubuntu 18.04 i również działało.
źródło
Używam Ubuntu i zadziałało następujące polecenie
apt-get install --yes zip unzip
źródło
Nie żeby rozwodzić się nad tym, ale jeśli pracujesz w programie
Dockerfile
, możesz rozwiązać ten konkretny problem z Composerem, instalującunzip
narzędzie. Poniżej znajduje się przykład użycia oficjalnego obrazu PHP do zainstalowaniaunzip
izip
rozszerzenia PHP dla dobrego pomiaru.Jest to pomocny problem z GitHubem, w którym powyższy opis jest pięknie wzięty.
źródło
Jeśli używasz Ubuntu i PHP 7.2 , użyj tego ...
źródło
Otrzymałem ten błąd, kiedy zainstalowałem Laravel 5.5 na moim serwerze w chmurze digitalocean (Ubuntu 18.04 i PHP 7.2), a następujące polecenie naprawiło go.
źródło
W dockerze z obrazem
php:7.2-apache
wystarczyło spakować i rozpakować. Nie potrzeba php-zip:apt-get install zip unzip
lub Dockerfile
źródło
Faktycznie, obecnie Composer wydaje się działać bez
zip
polecenia wiersza poleceń, więc instalacjaphp-zip
powinna wystarczyć --- ALE wyświetli ostrzeżenie:Zobacz także Czy jest problem z używaniem php-zip (ostrzega kompozytor)
źródło