Comment construire et installer la dernière version de cURL sur CentOS et Ubuntu ?
Souhaitez-vous générer la dernière version de cURL à partir de ses sources ?
Il est possible que la version de cURL incluse avec votre système d'exploitation ne soit pas la plus récente. Si vous avez besoin de la dernière version pour répondre à des exigences spécifiques, vous devrez la compiler vous-même à partir des sources.
Récemment, lors de mes tests de HTTP/3, j'ai rencontré des difficultés en utilisant la version de cURL par défaut sur CentOS. Saviez-vous que cURL offre bien plus de fonctionnalités ?
[[email protected] ~]# 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
Protocoles: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Fonctionnalités: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
[[email protected] ~]#
La version la plus récente de cURL, soit la 7.67, prend en charge le protocole HTTP/3. Par conséquent, j'ai été contraint de la compiler à partir des sources. Cet exemple n'est qu'une illustration, car vos besoins peuvent varier.
Les instructions ci-dessous s'appliquent à la version 7.67 (la plus récente au moment de la rédaction de cet article) sur CentOS 8.x et Ubuntu 20.x. Néanmoins, la procédure est similaire pour d'autres versions.
Prérequis
Commençons par installer les dépendances nécessaires.
- Mettez à jour votre système. Bien que ce soit optionnel, je vous le recommande. Cela garantit que vous utilisez des versions récentes des paquets installés.
yum update -y
- Installation des paquets requis
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Décompression de l'archive .tar.gz téléchargée
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Cette opération créera un nouveau répertoire dans votre répertoire de travail courant.
Compilation de cURL sur CentOS/RHEL
Après avoir téléchargé et décompressé la dernière version de cURL, il est temps de procéder à sa compilation.
- Naviguez vers le répertoire nouvellement créé après la décompression.
cd curl-7.67.0
- Configurez cURL avec le support SSL, comme indiqué ci-dessous
./configure --with-ssl
- Vous devriez obtenir un résultat similaire à celui-ci :
configure: Configured to build curl/libcurl:
Host setup: x86_64-pc-linux-gnu
Install prefix: /usr/local
Compiler: 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: enabled (OpenSSL)
SSH: no (--with-libssh2)
zlib: enabled
brotli: no (--with-brotli)
GSS-API: no (--with-gssapi)
TLS-SRP: no (--enable-tls-srp)
resolver: POSIX threaded
IPv6: enabled
Unix sockets: enabled
IDN: no (--with-{libidn2,winidn})
Build libcurl: Shared=yes, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
Code coverage: disabled
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: enabled
RTMP: no (--with-librtmp)
Metalink: no (--with-libmetalink)
PSL: no (libpsl not found)
Alt-svc: no (--enable-alt-svc)
HTTP2: disabled (--with-nghttp2)
HTTP3: disabled (--with-ngtcp2, --with-quiche)
ESNI: no (--enable-esni)
Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
Features: SSL IPv6 UnixSockets libz AsynchDNS NTLM NTLM_WB HTTPS-proxy
make make install
L'opération prendra quelques instants. Une fois terminée, vérifiez la version pour confirmer la réussite de l'installation.
Compilation de cURL sur Ubuntu
Je pars du principe que vous avez téléchargé la dernière version, comme expliqué dans la section des prérequis.
- Accédez au répertoire où vous avez extrait le contenu de l'archive cURL.
- Installez les dépendances.
apt-get install -y binutils-common binutils make
- Si les dépendances ci-dessus (binutils) ne sont pas installées, l'erreur suivante peut se produire :
configure: error: ar not found in PATH. Cannot continue without ar.
- Il est temps de compiler, à présent, à l'aide de la commande configure :
./configure --with-ssl
- Si la commande précédente n'a pas généré d'erreur, vous pouvez procéder à l'installation à l'aide de la commande make.
make make install
C'est terminé !
Vérification
Utilisez la commande –version pour obtenir les informations sur la version.
# 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
Protocoles: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Fonctionnalités: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets
#
Conclusion
Comme vous pouvez le constater, c'est facile si vous suivez les étapes. J'espère que cela vous a aidé à installer cURL à partir des sources.
Avez-vous apprécié cet article ? N'hésitez pas à le partager !