He estado escribiendo código laravel durante bastante tiempo. Actualmente, intenté clonar un proyecto de github y editarlo localmente. Instalé Composer en el directorio de mi proyecto, pero no se incluyó una carpeta de proveedor. Traté de ejecutar la composer install , pero me da este error.
Your lock file does not contain a compatible set of packages. Please run composer update¿Cómo resuelvo esto?
Nota: he intentado ejecutar la composer update en clones anteriores y eso no funcionó.
Debe intentar ejecutar composer update --lock que actualizará todos los paquetes y volverá a crear el archivo compose.lock.
O puede eliminar el archivo composer.lock y ejecutar la composer install del compositor que también recreará el archivo .lock.
Esto resolvió mi problema.
Descargo de responsabilidad, esta solución no solucionará el problema de los proyectos PHP 8.
En la mayoría de los casos, esto sucede debido a PHP 8 (en mi caso, las acciones de CI de GitHub comenzaron automáticamente con PHP 8 aunque mi proyecto es php 7.4)
Si tiene varias instalaciones de PHP (por ejemplo, 7.4 y 8 en el mismo servidor), así es como puede solucionarlo.
Especifique que su versión de php es su archivo composer.json
"config": { "platform": { "php": "7.3" } },Si ya ha confirmado el archivo de bloqueo, ejecute la actualización del compositor después de agregar la línea anterior en composer.json y luego confirme el nuevo archivo de bloqueo. (Tenga en cuenta que la actualización del compositor actualizará sus paquetes a las últimas versiones)
Enfrenté este problema con mi proyecto cakephp en garuda linux (basado en arquitectura)
sudo pacman -S php-intl/etc/php/php.ini ). agregar extension=intl o descomentar el existenteTuve este error con Github Actions al intentar implementar una aplicación Laravel, probablemente sea diferente al caso del OP, pero ninguna de las sugerencias funcionó para mí. Agrego mi respuesta aquí en caso de que haya alguien más con un problema similar al mío.
Tuve que deshabilitar -q en Github Actions y vi que se quejaba de que las extensiones no estaban instaladas.
Asegúrese de que su sección require de las extensiones php del compositor coincida con las extensions: en su archivo de acción github para shivammathur/setup-php@v2 y se implementará nuevamente
Tuve el mismo error al implementar otro proyecto con composer, pero el problema era que faltaba una extensión de php.
Entiendo que solucionó su problema, pero para cualquiera que vea el mismo mensaje de error, aquí hay una guía general:
El mensaje de error Your lock file does not contain a compatible set of packages. Please run composer update se muestra cada vez que hay un conflicto durante el paso de resolución de dependencias de la instalación del compositor. (vea la parte relevante en el código fuente del compositor )
Sin embargo, no informa sobre el problema real y podría ser difícil de adivinar.
Para obtener la explicación exacta, puede agregar la opción --verbose al comando de composer install (la opción está disponible para cualquier comando del compositor (consulte el documento) ): composer install --verbose
Le dará el mensaje completo que explica qué es exactamente lo que impide que se complete la instalación del compositor (conflicto de versión del paquete, extensión de php faltante, etc.), luego podrá solucionar el problema.
Espero que esto pueda ayudar.
Resolví este problema con este comando:
composer self-update --1Probablemente funciona porque en el momento en que se desarrolló el proyecto, composer estaba en otra versión y cuando se cambió la versión principal de 1 a 2, se rompió la compatibilidad. Con este comando degradas composer y probablemente lo resuelvas
Ejecute este comando:
composer install --ignore-platform-reqso
composer update --ignore-platform-reqsEn mi caso, este problema se presenta en Ubuntu 20.04 Desktop. Esto se debe a algunos paquetes faltantes.
Ejecuté los siguientes comandos para instalar algunos paquetes, luego volví a ejecutar la instalación de Composer y funciona correctamente. Los comandos son:
sudo apt-get install php-mbstring sudo apt-get install php-xmlLuego vuelva a ejecutar la instalación del compositor