¿Por qué PHP Composer es tan lento?

99

¿Por qué PHP Composer es tan lento cuando todo lo que hago es iniciar un proyecto sin dependencias? Estos son los comandos que ejecuto:

composer init

<paso a través de la creación de composer.json, define 0 cero dependencias>

composer install

Espere 3 minutos (no es una exageración).

Todo lo que tiene que hacer el compositor es introducir un autocargador y crear /vendor, entonces, ¿por qué tarda tanto? De hecho, ¿por qué no sucede ese paso composer init?

¿Existe una opción de configuración que pueda usar para incorporar un cargador automático en caché y un proveedor init?

AgmLauncher
fuente
1
Más en serio: ¿ha actualizado su compositor en los últimos 30 días? Hubo una mejora importante en el rendimiento del código el mes pasado
Mark Baker
Comencé hace compose installmás de 5 minutos y aún no se completó. Composer version 1.0-dev (07c644ac229a21df80180598d8bb9aaba232eecb) 2015-02-03 12:51:10. Tal vez no sea la versión más reciente, pero aún más nueva que su mainframe IBM ;-)
axiac
Confirme que lo ha hechocomposer self-update
sjagr
Lo actualicé la semana pasada.
AgmLauncher
Luché con la actualización del compositor y la autoactualización del compositor era increíblemente lenta. Tomando más de 15 minutos y luego lanzando excepciones. Cambié los servidores DNS de mi enrutador (de Google a los de mi ISP) y el compositor funcionó a la perfección.
Gordon Hickley

Respuestas:

43

Además, desactive Xdebug . Xdebug puede hacer que Composer tarde unos minutos incluso cuando se ejecuta un comando tan simple como composer --version.

adjco
fuente
1
En realidad, este resultó ser mi problema. Xdebug hace que el compositor funcione muy lento.
AgmLauncher
Intente utilizar hirak / prestissimo. Es un complemento de compositor que te ayuda a descargar paquetes a un ritmo rápido. enlace
Ritesh Chitrakar
3
En el momento de escribir este artículo, tuve el mismo rendimiento con o sin depuración, ya que en 2020/2019 composer deshabilitó automáticamente xdebug cuando se ejecutó, a pesar de que la instalación de yii2-starter-kit tomó alrededor de 200 segundos con todas las bibliotecas, ya sea w / wo xdebug, por lo que esta respuesta se está quedando obsoleta
FantomX1
Vi esto, arrancó mi depurador. Descubrí que, aunque xdebug está configurado solo para FPM, la CLI lo había iniciado y mi IDE estaba allí en un punto de interrupción esperándome. Presiona Continuar y el compositor vuelve a
entrar
378

Porque Composer es implementado por file_get_contents(). Eso no tiene optimizaciones de TCP, ni Keep-Alive, ni multiplexación, etc.

Creé un complemento de Composer para descargar paquetes en paralelo: https://packagist.org/packages/hirak/prestissimo

$ composer global requiere hirak / prestissimo

Por favor pruebalo. En mi entorno, se composer installvuelve 10 veces más rápido.

hiraku
fuente
Wow, pasé de 124 segundos para instalar un nuevo proyecto de laravel a solo 21 segundos. ¡Quiéralo!
Cornips
7
Buenas noticias: aparentemente se fusionó con Composer 2 en enero de 2019: github.com/composer/composer/pull/7904
Chuck Le Butt
@ChuckLeButt pero la liberación aún está fuera de la vista :(
hejdav
Gracias hermano. Es 20 veces más rápido.
Ilyas karim
61
  1. Asegúrese de tener la última versión de Composer.
  2. Instale en modo detallado agregando -vvv, por ejemplo composer global require "squizlabs/php_codesniffer=*" -vvv
  3. Si puede averiguar dónde se enfrenta Composer a la lentitud, por ejemplo, el mío se atascó durante 5 minutos al descargar paquetes. Se tardaron más de 5 minutos en descargar un archivo de 20 kB en una conexión de 50 Mbit / s. Esto se debió a que estaba descargando los paquetes de packagist usando HTTP y no HTTPS. Hacer estos cambios en la configuración resolvió mi problema: composer config --global repo.packagist composer https://packagist.org
sgr12
fuente
3
Soy nuevo en el compositor y trato de arreglar esto durante 2 días, después de leer su comentario y agregar -vvv, finalmente funcionó. 1000 votos a favor
Huy Trịnh
# 3 me lo resolvió. Eres mi héroe ahora mismo. Estuve preocupado desde hace bastante tiempo por qué es tan lento y solo funciona en algunas conexiones de Internet. ¡Gracias!
Andreas Schantl
composer config --global repo.packagist composer https://packagist.org ¡qué fue eso! ¡Increíble! 🏆
Rishi Kulshreshtha
13

Lo mismo aquí. Obtenga más detalles con "Composer install --profile -vvv". En mi caso, lleva mucho tiempo descargar algunos archivos JSON. Se almacenan en caché en mi servidor, pero aún se descargan con cada llamada de actualización / instalación de Composer.

... 30 minutos después ...

Parece un problema de rendimiento @ packagist.org. ¡Ahora la instalación de Composer se ejecuta en 2 segundos! Y los archivos JSON descargados se almacenan en caché correctamente.

ppan
fuente
1
"Se almacenan en caché en mi servidor, pero aún se descargan con cada llamada de instalación / actualización del compositor" ¡¡ESTO !! ¿Ha encontrado una solución para este problema? Tengo una conexión lenta y es terrible ver eso.
Lud
9

Me estaba encontrando con este problema y me estaba volviendo loco ya que no tengo Xdebug instalado en ninguna parte de mi máquina. Resulta que fueron fallas en el modo de direccionamiento IPv6 . Así que para probar corrí

curl --ipv4 'https://packagist.org/packages.json'
curl --ipv6 'https://packagist.org/packages.json'

IPv4 pasó, pero falló IPv6. Al final, debería buscar para averiguar por qué su pila de red no lo admite, pero en mi caso, decidí dar preferencia al tráfico IPv4 hasta que pueda resolver eso. En CentOS creé / modifiqué el archivo /etc/gai.conf y puse lo siguiente:

label       ::1/128        0
label       ::/0           1
label       2002::/16      2
label       ::/96          3
label       ::ffff:0:0/96  4
precedence  ::1/128        50
precedence  ::/0           40
precedence  2002::/16      30
precedence  ::/96          20
precedence  ::ffff:0:0/96  100

En Ubuntu también puede editar ese archivo y descomentar la línea

precedence ::ffff:0:0/96  100

Fuente en Rackspace Community Hub

Aaron Chamberlain
fuente
Solo para una nota, esto no pareció ayudarme personalmente, aunque tendré que resimularlo para confirmar todas las opciones, cuál de ellas podría ser la causa.
FantomX1
@ FentomX1 Lamento oír eso. Por eso incluí la prueba en la parte superior. Si realiza ambas pruebas de curl y se está conectando, obviamente, los cambios no deberían realizarse porque su red está configurada correctamente.
Aaron Chamberlain
1
Encontré un breve video de YouTube que muestra cómo hacer esto en Windows 10. Solucionó mi problema. youtube.com/watch?v=63Lt_vlNWLc
Marcus
5

En Ubuntu Xenial 16.04 VPS, debe hacer lo siguiente:

sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
composer global require hirak/prestissimo

Configura IPv4 como preferido sobre IPv6.

/server/93717/setting-ipv4-as-preferred-protocol-over-ipv6

Liam Mitchell
fuente
desde que instalé prestissimo, mi velocidad de compositor ha sido excelente.
Big Tree
3
Puedo confirmar que esta solución funciona incluso para ubuntu 18.04LTS
mwangaben
Agregue alguna explicación a su respuesta para que otros puedan aprender de ella. ¿Qué hace esa primera línea?
Nico Haase
@NicoHaase Si observa las marcas de tiempo, esta respuesta es en realidad una respuesta al problema que describí, pero no lo pusieron como comentario. Lo incorporé a mi respuesta de todos modos. Parece que packagist prefiere usar IPV6, pero algunas redes aún no funcionan bien con él. La primera línea hace que su máquina Linux prefiera direcciones IPv4 y las busque primero.
Aaron Chamberlain
1

En mi caso, la versión del compositor que estaba ejecutando estaba retroactiva. Después de actualizar la versión del compositor, el problema desapareció.

Para actualizar la versión del compositor, ejecute

composer self-update

y luego requiere el paquete composer y listo.

composer require "<package-name>"
sh6210
fuente
sudo? root? por qué ?
Mohamed Elbahja
lo siento hermano, agregue sudo si tiene problemas de permisos.
sh6210
¿O debería arreglar el modo de archivo y los permisos de propietario / grupo? en lugar de simplemente ejecutar SUDO! sin saber lo que eso significa? definitivamente no es un FIX.
Mohamed Elbahja
Por supuesto, puede solucionar el problema de permisos de propietario / grupo ejecutando el comando "chown", pero puede hacerlo de una vez. Mi principal intención era mostrar la solución de la forma más sencilla desde mi punto de vista. Sin embargo, lo siento si mis palabras no tienen ningún sentido para ti.
sh6210
@ sh6210 No fomente el uso de sudo cuando utilice el compositor. Asumir que "podría" un permissionproblema es prejuicio.
dbf
0

Si alguna de las respuestas anteriores no funciona, verifique si su firewall permite TCP_OUT en el puerto 9418.

La seguridad de mi firewall era demasiado nítida. Esto hizo que Composer tardara tanto que nunca obtuve ningún tiempo de espera o indicación de que el puerto estaba bloqueado.

gidomanders
fuente
¿Tu procesador estuvo ocupado durante la actualización?
Yevgeniy Afanasyev
0

El mío fue lento al descargar archivos json debido al antivirus. Algunos antivirus escanean todo el tráfico web y pueden ser lentos al analizar los archivos json. Intente deshabilitar su AV mientras ejecuta composer.

Dima L.
fuente
0

Editar: Conclusión: no se enumera ninguna solución aquí o, en general, parece ser a prueba de balas. Lo que en última instancia ayuda es usar composer de forma incremental, requiriendo o eliminando solo un paquete a la vez usando composer require,composer remove comandos, también se refiere a la adición de cualquier ajuste de "no-dependencia específica", cualquier biblioteca puede ser añadido / retirado por el bien de ella de actualización / actualizar la configuración de la caché de bloqueo composer.json.

Agrupando mi experiencia con respuestas de aquí y del enlace en cuestión.

Antes probé todas las soluciones mencionadas en esta pregunta hasta este momento. Sin embargo, todavía no me ayudó, aunque intenté / noté que la instalación de cualquier otra biblioteca individual era considerablemente rápida, así que seguí investigando las bibliotecas una por una que podrían causar el cuello de botella.

1) SÍ Y lo ubiqué como codeception,"codeception/codeception": "2.4.0",

Solo tardó casi 200 segundos, aunque ejecutarlo junto con otras bibliotecas parecía en ocasiones ejecutar casi 12 minutos. Además, el compositor no parece reflejar en tiempo real cuando, después de iniciar durante 20 segundos, ejecuta 0.35s y así sucesivamente.

[374.9MiB/173.14s]     39/45:   https://codeload.github.com/sebastianbergmann/php-text-template/legacy.zip/31f8b717e51d9a2afca6c9f046f5d69fc27c8686
[374.9MiB/173.16s]     40/45:   https://codeload.github.com/sebastianbergmann/diff/legacy.zip/720fcc7e9b5cf384ea68d9d930d480907a0c1a29
[374.9MiB/173.17s]     41/45:   https://codeload.github.com/sebastianbergmann/exporter/legacy.zip/68609e1261d215ea5b21b7987539cbfbe156ec3e
[374.9MiB/173.19s]     42/45:   https://codeload.github.com/sebastianbergmann/phpunit-mock-objects/legacy.zip/f9756fd4f43f014cb2dca98deeaaa8ce5500a36e
[374.9MiB/173.20s]     43/45:   https://codeload.github.com/sebastianbergmann/recursion-context/legacy.zip/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8
[374.9MiB/173.23s]     44/45:   https://codeload.github.com/sebastianbergmann/php-code-coverage/legacy.zip/4cab20a326d14de7575a8e235c70d879b569a57a
[374.9MiB/173.24s]     45/45:   https://codeload.github.com/doctrine/instantiator/legacy.zip/ae466f726242e637cebdd526a7d991b9433bacf1
[374.9MiB/173.24s]     Finished: success: 45, skipped: 0, failure: 0, total: 45
[374.8MiB/173.25s] Analyzed 6622 packages to resolve dependencies
[374.8MiB/173.25s] Analyzed 435842 rules to resolve dependencies
[374.8MiB/173.25s] Package operations: 54 installs, 0 updates, 0 removals
[374.8MiB/173.26s] Installs: sebastian/recursion-context:3.0.0, sebastian/exporter:3.1.2, doctrine/instantiator:1.3.0, phpunit/php-text-template:1.2.1, phpunit/phpunit-mock-objects:6.1.2, codeception/stub:1.0.4, sebastian/diff:3.0.2, sebastian/comparator:3.0.2, theseer/tokenizer:1.1.3, sebastian/version:2.0.1, sebastian/environment:3.1.0, sebastian/code-unit-reverse-lookup:1.0.1, phpunit/php-token-stream:3.1.1, phpunit/php-file-iterator:1.4.5, phpunit/php-code-coverage:6.0.5, sebastian/object-reflector:1.1.1, sebastian/object-enumerator:3.0.3, sebastian/global-state:2.0.0, phpunit/php-timer:2.1.2, symfony/polyfill-ctype:v1.17.0, webmozart/assert:1.8.0, phpdocumentor/reflection-common:2.1.0, phpdocumentor/type-resolver:1.1.0, phpdocumentor/reflection-docblock:5.1.0, phpspec/prophecy:v1.10.3, myclabs/deep-copy:1.9.5, sebastian/resource-operations:1.0.0, phar-io/version:1.0.1, phar-io/manifest:1.0.1, phpunit/phpunit:7.1.5, codeception/phpunit-wrapper:7.6.1, symfony/yaml:v4.4.8, behat/gherkin:v4.6.2, symfony/polyfill-mbstring:v1.17.0, symfony/dom-crawler:v4.4.8, symfony/css-selector:v4.4.8, symfony/browser-kit:v4.4.8, symfony/event-dispatcher-contracts:v1.1.7, psr/container:1.0.0, symfony/event-dispatcher:v4.4.8, symfony/service-contracts:v2.0.1, symfony/polyfill-php73:v1.17.0, symfony/console:v4.4.8, symfony/finder:v4.4.8, ralouphie/getallheaders:3.0.3, psr/http-message:1.0.1, guzzlehttp/psr7:1.6.1, guzzlehttp/promises:v1.3.1, symfony/polyfill-php72:v1.17.0, symfony/polyfill-intl-idn:v1.17.0, guzzlehttp/guzzle:6.5.3, symfony/process:v4.4.8, facebook/webdriver:1.7.1, codeception/codeception:2.4.0
[374.8MiB/173.28s]   - Installing sebastian/recursion-context (3.0.0): [374.9MiB/173.28s] Loading from cache[374.9MiB/173.28s]
[374.9MiB/173.28s]  Extracting archive[374.9MiB/173.51s]   - Installing sebastian/exporter (3.1.2): [374.9MiB/173.52s] Loading from cache[374.9MiB/173.52s]
[374.9MiB/173.52s]  Extracting archive[374.9MiB/173.75s]   - Installing doctrine/instantiator (1.3.0): [374.9MiB/173.76s] Loading from cache[374.9MiB/173.76s]
[374.9MiB/173.76s]  Extracting archive[374.9MiB/174.00s]   - Installing phpunit/php-text-template (1.2.1): [374.9MiB/174.00s] Loading from cache[374.9MiB/174.00s]
[374.9MiB/174.00s]  Extracting archive[374.9MiB/174.23s]   - Installing phpunit/phpunit-mock-objects (6.1.2): [374.9MiB/174.23s] Loading from cache[374.9MiB/174.23s]
[374.9MiB/174.23s]  Extracting archive[374.9MiB/174.55s]   - Installing codeception/stub (1.0.4): [374.9MiB/174.56s] Loading from cache[374.9MiB/174.56s]
[374.9MiB/174.56s]  Extracting archive[374.9MiB/174.80s]   - Installing sebastian/diff (3.0.2): [374.9MiB/174.80s] Loading from cache[374.9MiB/174.80s]
[374.9MiB/174.80s]  Extracting archive[374.9MiB/175.07s]   - Installing sebastian/comparator (3.0.2): [374.9MiB/175.07s] Loading from cache[374.9MiB/175.07s]
[374.9MiB/175.07s]  Extracting archive[374.9MiB/175.33s]   - Installing theseer/tokenizer (1.1.3): [374.9MiB/175.33s] Loading from cache[374.9MiB/175.33s]

La carrera antes

 Problem 1
    - Installation request for codeception/codeception 2.4.0 -> satisfiable by codeception/codeception[2.4.0].
    - Conclusion: remove symfony/finder v5.0.8
    - Conclusion: don't install symfony/finder v5.0.8
    - codeception/codeception 2.4.0 requires symfony/finder >=2.7 <5.0 -> satisfiable by symfony/finder[v2.7.0, v2.7.1, v2.7.10, v2.7.11, v2.7.12, v2.7.13, v2.7.14, v2.7.15, v2.7.16, v2.7.17, v2.7.18, v2.7.19, v2.7.2, v2.7.20, v2.7.21, v2.7.22, v2.7.23, v2.7.24, v2.7.25, v2.7.26, v2.7.27, v2.7.28, v2.7.29, v2.7.3, v2.7.30, v2.7.31, v2.7.32, v2.7.33, v2.7.34, v2.7.35, v2.7.36, v2.7.37, v2.7.38, v2.7.39, v2.7.4, v2.7.40, v2.7.41, v2.7.42, v2.7.43, v2.7.44, v2.7.45, v2.7.46, v2.7.47, v2.7.48, v2.7.49, v2.7.5, v2.7.50, v2.7.51, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.1, v2.8.10, v2.8.11, v2.8.12, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19, v2.8.2, v2.8.20, v2.8.21, v2.8.22, v2.8.23, v2.8.24, v2.8.25, v2.8.26, v2.8.27, v2.8.28, v2.8.29, v2.8.3, v2.8.30, v2.8.31, v2.8.32, v2.8.33, v2.8.34, v2.8.35, v2.8.36, v2.8.37, v2.8.38, v2.8.39, v2.8.4, v2.8.40, v2.8.41, v2.8.42, v2.8.43, v2.8.44, v2.8.45, v2.8.46, v2.8.47, v2.8.48, v2.8.49, v2.8.5, v2.8.50, v2.8.52, v2.8.6, v2.8.7, v2.8.8, v2.8.9, v3.0.0, v3.0.1, v3.0.2, v3.0.3, v3.0.4, v3.0.5, v3.0.6, v3.0.7, v3.0.8, v3.0.9, v3.1.0, v3.1.1, v3.1.10, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6, v3.1.7, v3.1.8, v3.1.9, v3.2.0, v3.2.1, v3.2.10, v3.2.11, v3.2.12, v3.2.13, v3.2.14, v3.2.2, v3.2.3, v3.2.4, v3.2.5, v3.2.6, v3.2.7, v3.2.8, v3.2.9, v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.14, v3.3.15, v3.3.16, v3.3.17, v3.3.18, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.18, v3.4.19, v3.4.2, v3.4.20, v3.4.21, v3.4.22, v3.4.23, v3.4.24, v3.4.25, v3.4.26, v3.4.27, v3.4.28, v3.4.29, v3.4.3, v3.4.30, v3.4.31, v3.4.32, v3.4.33, v3.4.34, v3.4.35, v3.4.36, v3.4.37, v3.4.38, v3.4.39, v3.4.4, v3.4.40, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9, v4.0.0, v4.0.1, v4.0.10, v4.0.11, v4.0.12, v4.0.13, v4.0.14, v4.0.15, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.1, v4.3.10, v4.3.11, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.1, v4.4.2, v4.4.3, v4.4.4, v4.4.5, v4.4.6, v4.4.7, v4.4.8].
    - Can only install one of: symfony/finder[v2.7.0, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.1, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.10, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.11, v5.0.8].

2) SÍ Por cierto, prestissimo como mencioné ya se aplicó y pareció ayudar, ya que en otra computadora muy rápida que tiene Internet mucho más rápido sin codeception, la instalación tomó 5 veces más, 518 segundos, mientras que quizás debido a prestissimo u otros consejos aquí, tomó 110 segundos.

composer global require hirak/prestissimo

3) SÍ Windows es lento, al igual que las carpetas virtualizadas de Windows a Linux. La ejecución fuera de la carpeta compartida dentro de Linux pareció acelerarlo aproximadamente dos veces. Aunque podría deberse a cache.

4) NO

    "process-timeout": 1800,

es por proceso único como git checkout y no pareció ayudar en absoluto, incluso configurado en 10, ya que ya era considerablemente grande. Quizás sea útil solo cuando hay una interrupción total de algún servicio.

5) SÍ instalar con una carpeta de proveedor eliminada o vacía = recientemente parece ser considerablemente más rápido (alrededor de 1 minuto y más) que agregar a los archivos del proveedor y otros paquetes existentes en ella

6) YES parece ser más lento en Ubuntu18 apache2 sin la imagen propia de xdebug, que en Debian10 php-fpm incluso con xdebug en Yii2-starter-kit, por alguna razón aproximadamente dos veces más lento, cat /etc/*-releasepara descubrir la distribución de Linux

7) NO php -ddefault_socket_timeout=1 /usr/local/bin/composer --verbose --profile install mencionado aquí no pareció ayudar. Actualización lenta de las dependencias del compositor, a pesar del indicador --prefer-dist ni del protocolo IP v6 v v4 mencionado. Aunque podría deberse a la caché.

8) NO La instalación de zip no parece ayudar, la instalación de PHP tenía zip preinstalado, todavía se quejaba de no estar allí hasta que se instalaron como paquetes de Linux, pero hizo que el proceso en una sola simulación fuera más lento en 100 segundos de 650 a 750 segundos. Mismas condiciones ambientales. As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension https://stackoverflow.com/a/51208804/3419535 pruebas en condiciones sin caché--no-cache

9) SÍ eliminar "minimum-stability ": "dev",

10) SÍ use prefer-dist composer require robmorgan/phinx:@dev --prefer-dist -vvv --profile (usando un comando require como ejemplo, ya que el uso de comandos require parciales como se mencionó anteriormente, en lugar de una instalación completa a través de un comando de instalación, parece ser una de las aceleraciones más significativas, además de requerir @ dev- como en los puntos anteriores, cuando minimum-stability: devno se aplica genéricamente a todas las dependencias, parece ser inofensivo usarlo por caso (dependencia))

FantomX1
fuente
¿Cómo se relaciona esto con la pregunta dada? De acuerdo con la descripción del problema, no hay una sola dependencia enumerada en el problema de OP
Nico Haase
El problema debe abordarse de manera genérica, traté de resumir todo lo que me ayudó y agregué algunas otras soluciones de otros lugares. No siempre solo para lo que pide el preguntador, aquí vienen miles de escenarios de otros usuarios. La mayoría de las respuestas son genéricas. Composer require es básicamente una subparte de la instalación de composer. Solo porque utilicé también una palabra / comando 'requerir' en la respuesta, no significa que no se aplique también a la instalación, pero si lo desea, puedo eliminar esa palabra. 'No hay una sola dependencia en la lista', pero cómo cambia algo, la instalación del compositor no se trata más que de dependencias.
FantomX1
Pasé de 1 punto a -1 solo unos minutos después porque te respondí, tal vez porque me votaste anteriormente. Dime que la respuesta elegida prestistimo o usar ipv 6 o deshabilitar xdebug tampoco es genérica y no se aplica a un comando concreto de composer require. Me disculpo por algunas ediciones apresuradas, pero también lo uso como una wiki personal, y ni siquiera enumeré un nombre de dependencia concreto, pero lo ajustaré. Si no le gusta que cometí un error tipográfico, menciónelo, pero no ser genérico no tiene sentido. Utilicé un comando 'require' como referencia, ya que usar 'require' es una de las soluciones en sí.
FantomX1
1
El OP preguntó por qué Composer es lento sin dependencias , incluso si su lista de cosas podría ayudar en muchas otras situaciones, no veo ninguna conexión con la pregunta dada
Nico Haase
2
Prestissimo ayuda incluso con la lista de requisitos vacía: el compositor descarga algunos archivos independientemente de la lista de dependencias, por lo que la descarga paralela también ayudará aquí.
rob006
0

paso 1

$ composer self-update

paso 2

$ composer clear-cache

paso 3

$ composer update
Yevgeniy Afanasyev
fuente
-1

La mejor manera de averiguarlo es ejecutar la actualización / instalación del compositor con verbosidad. compositor {instalar / actualizar} -vvv. Usar la bandera -h puede ayudarte en el futuro

Edu
fuente
Comparta una explicación al respecto. El OP está ejecutando las pruebas utilizando una lista de dependencias completamente vacía
Nico Haase
-1

En caso de que haya eliminado su archivo composer.lock y luego lo haya hecho, composer installse vuelve demasiado lento para descargar las dependencias. Si este es el caso, use el composer updatecomando y luego puede ayudarlo a usted oa otros.

NadZ
fuente