Me enfrentaba a un problema hoy cuando intentaba instalar Composer con el siguiente comando:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Me estaba dando este error:
curl: (7) Failed to connect to getcomposer.org port 443: Network is unreachable
Busqué en Google y encontré este comando :
echo ipv4 >> ~/.curlrc
Ejecuté esto y solucionó el problema y el compositor se instaló muy bien.
Pero no sé qué hace el comando anterior, ¿alguien podría explicarlo?
command-line
ip
curl
Prashant Kumar
fuente
fuente

Respuestas:
Lo que hace es agregar "ipv4" al archivo "curlrc". Ejemplo que comienza con un archivo vacío:
Básicamente obliga a curl a usar ipv4.
El manual tiene esto que decir al respecto:
fuente
curl will connect to a server with IPv6 when a host lookup returns an IPv6 address and fall back to IPv4 if the connection fails, ¿por qué mi sistema acaba de dar un error en lugar de intentar acceder a ipv4 por sí mismo si no encontró el ipv6?.curlrcutiliza nombres de las opciones sin anteponer-o--.Una convención típica en UNIX es que los programas (generalmente) leen su configuración de inicio desde varios archivos predefinidos. Esto es simplemente una tradición, no algo definido por POSIX o cualquier otro estándar. Un programa típico de UNIX, por ejemplo
foobar, leería, en el siguiente orden de precedencia:Puede haber un retroceso,
/usr/share/pero eso no es muy común.Entonces,
curlaquí siguiendo la convención y leyendo su configuración inicial desde~/.curlrc. Y al hacerloecho ipv4 >>~/.curlrc, ha agregado la cadenaipv4al archivo~/.curlrc.La cadena
ipv4tiene un significado especial paracurl:curlutilizará IPv4 para la resolución del host. Esto es análogo al uso del argumento-4/ipv4ascurldesde la línea de comandos, pero guardarlo~/.curlrchace que sea permanente.Como ha configurado
ipv4allí y ahora todo funciona para usted, presumiblemente tiene IPv6 configurado ycurlanteriormente estaba usando IPv6 para una resolución de host (exitosa), por lo que no hay respaldo para IPv4. La conexión al sitio estaba fallando porque no todos los sitios tienen sus servidores web configurados para escuchar en direcciones IPv6, por lo que lasocket()llamada fallará como podemos ver en este caso.fuente
/etc/foobar.confse leería primero, luego~/.foobarrc, para que este último pudiera anular al primero. Por lo tanto, si/etc/foobar.confcontiene una línea que dicefrobnitz=0, y~/.foobarrctienefrobnitz=1, el último valor prevalece