Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Linux Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

¿Desea compilar la última versión de cURL a partir del código fuente?

cURL enviado con el sistema operativo puede no estar actualizado, y si necesita la versión más reciente para un requisito particular, entonces necesita construir desde la fuente.

Últimamente, estuve probando HTTP/3 usando cURL con la versión enviada por defecto en CentOS, pero no funcionó. BTW, hay más cosas que puede hacer con cURL.

[root@lab ~]# curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocolos: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet <a href="https://geekflare.com/es/tftp-servers-for-windows/">tftp</a> 
Características: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
[root@lab ~]#

Sin embargo, la última versión de cURL (7.67) soporta HTTP/3. Así que sólo tenía una opción: compilar desde el código fuente. Esto es sólo un ejemplo; puede que usted tenga otros requisitos.

El siguiente ejemplo es para la 7.67 (la última en el momento de escribir esto) en CentOS 8.x y Ubuntu 20.x. Pero el procedimiento sigue siendo el mismo para cualquier otra versión.

Requisitos previos

Vamos a instalar las dependencias necesarias.

  • Actualice el sistema. Aunque esto es opcional, yo prefiero hacerlo. Siempre tengo paquetes instalados actualizados.
yum update -y
  • Instalar los paquetes necesarios
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
  • Extraiga el archivo gz descargado
gunzip -c curl-7.67.0.tar.gz | tar xvf -

Creará una nueva carpeta en el directorio de trabajo actual

Construir cURL en CentOS/RHEL

Una vez que haya descargado y extraído las últimas versiones de cURL, es hora de compilarlas.

  • Entre en la carpeta recién creada tras la extracción
cd curl-7.67.0
  • Configure con SSL como se indica a continuación
./configurar --con-ssl
  • Verá una salida como la siguiente
configure: Configurado para construir curl/libcurl:

 Configuración del host: x86_64-pc-linux-gnu
 Prefijo de instalación:   /usr/local
 Compilador: gcc
 CFLAGS:          -Werror-implicit-function-declaration -O2 -Wno-system-headers -pthread
 CPPFLAGS:        
   LDFLAGS:         
   LIBS: -lssl -lcrypto -lssl -lcrypto -lz

 curl version: 7.67.0
 SSL: activado (OpenSSL)
 SSH: no (--with-libssh2)
 zlib: activado
 brotli: no (--with-brotli)
 GSS-API: no (--with-gssapi)
 TLS-SRP: no (--enable-tls-srp)
 resolver:         POSIX threaded
 IPv6: habilitado
 Unix sockets: habilitado
 IDN: no (--with-{libidn2,winidn})
 Build libcurl: Shared=yes, Static=yes
 Built-in manual:  habilitado
 Opción --libcurl: habilitada (--disable-libcurl-option)
 Verbose errors: habilitado (--disable-verbose)
 Code coverage: deshabilitado
 SSPI: no (--enable-sspi)
 ca cert bundle:   /etc/pki/tls/certs/ca-bundle.crt
 ca cert path: no
 ca fallback: no
 LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
 LDAPS: no (--enable-ldaps)
 RTSP: activado
 RTMP: no (--with-librtmp)
 Metalink:         no (--with-libmetalink)
 PSL: no (libpsl not found)
 Alt-svc: no (--enable-alt-svc)
 HTTP2: desactivado (--with-nghttp2)
 HTTP3: desactivado (--with-ngtcp2, --with-quiche)
 ESNI: no (--enable-esni)
 Protocolos:        DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
 Características:         SSL IPv6 UnixSockets libz AsynchDNS NTLM NTLM_WB HTTPS-proxy
  • Vamos a instalarlos
make
make install

Tardará unos segundos en completarse, y una vez hecho; puede verificar la versión para asegurarse de que se ha instalado correctamente.

Construyendo cURL en Ubuntu

Asumo que ha descargado la última versión como se explica en la sección de prerrequisitos.

  • Vaya a la carpeta donde está extraído el cURL descargado
  • Instale las dependencias
apt-get install -y binutils-common binutils make
  • Si no tiene instaladas las dependencias anteriores (binutils) entonces puede obtener el siguiente error.
configure: error: ar no se encuentra en PATH. No se puede continuar sin ar.
  • Y, es hora de construir ahora con el comando configure.
./configure --with-ssl
  • Si no se produce ningún error en la ejecución anterior, instale finalmente con el comando make.
make 
make install

Eso es todo

Verificación

Utilice --version para ver los detalles de la versión.

# curl --version
curl 7.67.0 (x86_64-pc-linux-gnu) libcurl/7.67.0 OpenSSL/1.0.2k-fips zlib/1.2.7
Release-Date: 2019-11-06
Protocolos: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Características: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets
#

Conclusión

Como ve, es fácil cuando se tienen los pasos. Espero que esto le ayude a instalar cURL desde la fuente.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre Linux
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder