Vous souhaitez compiler la dernière version de cURL à partir des sources ?
cURL livré avec le système d'exploitation peut ne pas être à jour, et si vous avez besoin de la dernière version pour un besoin particulier, alors vous devez compiler à partir des sources.
Dernièrement, j'ai testé HTTP/3 en utilisant cURL avec la version livrée par défaut sur CentOS, mais cela n'a pas fonctionné. BTW, il y a d'autres choses que vous pouvez faire avec 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
Protocoles : dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp scp sftp smtp smtps telnet <a href="https://geekflare.com/fr/tftp-servers-for-windows/">tftp</a>
Caractéristiques : AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
[root@lab ~]#
Cependant, la dernière version de cURL (7.67) supporte HTTP/3. Je n'avais donc qu'une seule option : construire à partir des sources. Ce n'est qu'un exemple ; vous pouvez avoir d'autres exigences.
L'exemple suivant concerne la version 7.67 (la plus récente au moment où j'écris) sur CentOS 8.x et Ubuntu 20.x. Mais la procédure reste la même pour toute autre version.
Prérequis
Installez les dépendances nécessaires.
- Mettez à jour le système. Bien que cela soit facultatif, je préfère le faire. J'ai toujours des paquets installés à jour.
yum update -y
- Installation des paquets requis
yum install wget gcc openssl-devel -y
- Téléchargez les dernières sources de cURL - vous pouvez vous référer à leur page de téléchargement officielle pour connaître la dernière version.
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Extrayez le fichier
gz
téléchargé
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Cela créera un nouveau dossier dans le répertoire de travail actuel
Construire cURL sur CentOS/RHEL
Une fois que vous avez téléchargé et extrait les dernières versions de cURL, il est temps de les compiler.
- Allez dans le dossier nouvellement créé après l'extraction
cd curl-7.67.0
- Configurez SSL comme suit
./configure --with-ssl
- Vous obtiendrez un résultat semblable à celui ci-dessous.
configure : Configuré pour construire curl/libcurl :
Configuration de l'hôte : x86_64-pc-linux-gnu
Préfixe d'installation : /usr/local
Compilateur : 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 : activé (OpenSSL)
SSH : non (--with-libssh2)
zlib : activé
brotli : non (--with-brotli)
GSS-API : non (--with-gssapi)
TLS-SRP : non (--enable-tls-srp)
resolver : POSIX threaded
IPv6 : activé
Unix sockets : activé
IDN : non (--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 : activé
RTMP : no (--with-librtmp)
Metalink : non (--with-libmetalink)
PSL : non (libpsl introuvable)
Alt-svc : non (--enable-alt-svc)
HTTP2 : désactivé (--with-nghttp2)
HTTP3 : désactivé (--with-ngtcp2, --with-quiche)
ESNI : non (--enable-esni)
Protocoles : DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
Caractéristiques : SSL IPv6 UnixSockets libz AsynchDNS NTLM NTLM_WB HTTPS-proxy
- Installons-les
make
make install
L'installation prendra quelques secondes, et une fois terminée, vous pouvez vérifier la version pour vous assurer qu'elle a été installée avec succès.
Construire cURL sur Ubuntu
Je suppose que vous avez téléchargé la dernière version comme expliqué dans la section des prérequis.
- Allez dans le dossier où le cURL téléchargé est extrait
- Installez les dépendances
apt-get install -y binutils-common binutils make
- Si les dépendances ci-dessus (binutils) ne sont pas installées, vous risquez d'obtenir l'erreur suivante.
configure : error : ar not found in PATH. Impossible de continuer sans ar.
- Il est temps de construire maintenant avec la commande
configure
.
./configure --with-ssl
- S'il n'y a pas d'erreur lors de l'exécution ci-dessus, installez finalement avec la commande make.
make
make install
C'est tout !
Vérification
Utilisez --version
pour voir les détails de 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
Caractéristiques : AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets
#
Conclusion
Vous voyez, c'est facile quand vous avez la marche à suivre. J'espère que cela vous aidera à installer cURL à partir des sources.