instalar ext-zip para Mac

55

Estoy intentando ejecutar composer updatey me aparecen los siguientes errores:

Problem 1
    - The requested PHP extension ext-zip * is missing from your system. Install or enable PHP's zip extension.
  Problem 2
    - maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.13 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.14 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.15 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.16 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.17 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.7 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.8 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.9 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.2.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.0 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.1 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.2 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.3 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.4 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.5 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.6 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - phpoffice/phpspreadsheet 1.9.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.7.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.6.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for maatwebsite/excel ^3.1.0 -> satisfiable by maatwebsite/excel[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.x-dev, 3.2.x-dev].

cuando corres composer update

Durante la noche cometí el error de mi vida y permití que mi Mac actualice automáticamente el sistema operativo, por lo que ahora estoy en macOS Catalina.

He intentado agregar

 "require": {
    "ext-zip": "*",
 }

a mi composer.json ... pero no está descargando esa extensión.

Abdul
fuente
1
Ese error solo significa que su PHP no tiene php-zipinstalada la extensión.
Latheesan
Al tener el mismo problema, phpinfo dice que está instalado ... muy extraño ... gracias Apple ...
Jamie Robinson
@JamieRobinson, avíseme si ha encontrado una solución, por favor.
Abdul
@Abdul, lo mejor que tengo hasta ahora es usar "compositor install --ignore-platform-reqs" ... no es una solución, pero soluciona el problema a corto plazo
Jamie Robinson
@JamieRobinson por su información, alguien respondió con algo que funcionó para mí.
Abdul

Respuestas:

129

Tuve el mismo problema después de actualizar mi Mac a Catalina. Esto es lo que funcionó para mí.

brew update
brew install php@7.3
brew link php@7.3

Luego recarga tu consola.

Instalará php 7.3.10 con el módulo zip. Puede usar php -v para verificar la versión y php -m para los módulos.

Aldranor
fuente
¡Muchas gracias! eso funcionó como un encanto!
Abdul
2
@Aldranor siente que esto casi funciona, ejecutar una instalación de cerveza suena como un buen plan. Sin embargo, ahora aparece "Error: no se pudo hacer un enlace simbólico sbin / php-fpm" "/ usr / local / sbin no se puede escribir". ... brew tampoco ejecutará sudo ... ¿alguna idea?
Jamie Robinson
8
Finalmente lo arreglé! Ejecutar "brew doctor" dice que esta carpeta no existe y no se puede escribir, y le da los comandos para ejecutar. Ejecute esos comandos, ejecute el comando de enlace nuevamente, vuelva a cargar la consola, todo de vuelta a la normalidad :)
Jamie Robinson
8
use 'brew link --force [email protected]' si ve esta advertencia "[email protected] es solo de barril y debe vincularse con --force"
leeCoder
3
Esto funcionó, pero solo después de haber agregado: export PATH="/usr/local/opt/[email protected]/bin:$PATH" export PATH="/usr/local/opt/[email protected]/sbin:$PATH"a mi .zshrc
Loosie94
14

El siguiente comando solucionó el problema en macOS Catalina

brew link php@7.3 --force
Hamza Waleed
fuente
6

Si brew link no funciona para usted, verifique su versión de php instalada por:

ls /usr/local/opt/php*

Aquí verá una versión como tal:

/usr/local/opt/php@7.3/bin:$PATH

Debería darte una salida como:

/usr/local/opt/php@7.3:
INSTALL_RECEIPT.json        include
LICENSE                     lib
NEWS                        pecl
README.md                   sbin
bin                         share
homebrew.mxcl.php@7.3.plist

Ahora solo necesita vincular eso a su $ PATH que se puede hacer como:

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Nota: Estoy usando .zshrc porque esa es la configuración de mi terminal. Si el tuyo es bash, úsalo en consecuencia.

Puede verificar qué versión de php ahora está vinculada a su MacOS ejecutando:

which php

Esto debería darte una salida de:

/usr/local/opt/php@7.3/bin/php

Eso es. Ahora, si intenta actualizar el compositor, no debería darle el problema de extensión.

Fuente (parte de ella): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602

SAVE.US_222
fuente
6

El 10 de marzo de 2020, funciona para mí:

brew install php  

Es el único comando sobre PHP que funciona. Entonces, creo que los comandos mostrados en las últimas publicaciones están en desuso.

Caminos infinitos
fuente
1
24 de marzo de 2020 confirmado
Frank Leal
26 de marzo de 2020 confirmado.
Muhammad Ali
7 de abril conformado
PSN
14 de abril de 2021. Confirmado desde el futuro.
Pandem1c
4

Tuve problemas con el enlace simbólico de Python durante el brew install php.

/usr/local/Frameworks no existía, así que tuve que crearlo: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Luego tuve que prepararlo: sudo chown -R myuser:admin Frameworks

Basé la configuración de permisos en el resto de las carpetas en /usr/local.

Entonces podría correr brew link python. Luego corrí de brew install phpnuevo y se completó.

php -v ahora me da php 7.3.10, antes de que fuera php 7.3.18, creo.

tommyskott
fuente
Propondría usar ---> sudo chown -R $ (whoami) bin, etc.incluir lib sbin share var Frameworks <---- en lugar de ---> sudo chown -R myuser: admin Frameworks <---
Ben Spi
2

En lugar de forzar el enlace, también puede solucionar el problema en MacOS Catalina

agregando la ruta binaria php a su perfil bash, por ejemplo:

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/[email protected]/sbinbin:$PATH"' >> ~/.bash_profile
MDeuerlein
fuente
2

Si no lo necesita ext-zip(por ejemplo, solo desea hacer una solución rápida), puede usar la --ignore-platform-reqsopción para ignorar los requisitos:

$ composer update --ignore-platform-reqs
bschen
fuente
0

En mi caso tuve que simplemente

brew link --overwrite php
João Felipe Marques Ribeiro
fuente