Vous cherchez à créer la dernière cURL à partir de la source?
cURL fourni avec le système d'exploitation peut ne pas être à jour, et si vous avez besoin de la version la plus récente pour une exigence particulière, vous devez alors compiler à partir de la source.
Dernièrement, je testais HTTP / 3 en utilisant cURL avec la version livrée par défaut sur CentOS, mais cela n'a pas fonctionné. BTW, vous pouvez faire plus 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
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet <a href="https://geekflare.com/tftp-servers-for-windows/">tftp</a>
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
[root@lab ~]#
Cependant, la dernière version de cURL (7.67) prend en charge HTTP / 3. Donc, je n'avais qu'une seule option - construire à partir de la source. Ceci n'est qu'un exemple; vous pouvez avoir d'autres exigences.
L'exemple suivant est pour 7.67 (le plus récent 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.
Prerequisite
Obtenons les dépendances requises installées.
- Mettez à jour le système. Bien que ce soit facultatif, je préfère le faire. J'ai toujours des packages installés à jour.
yum update -y
- Installation des packages requis
yum install wget gcc openssl-devel -y
- Téléchargez la dernière source cURL - vous pouvez vous référer à leur page officielle de téléchargement pour connaître la dernière version.
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Extrayez le fichier téléchargé
gz
filet
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Cela créerait un nouveau dossier sur le répertoire de travail actuel
Building cURL on CentOS/RHEL
Une fois que vous avez téléchargé et extrait les dernières cURL, il est temps de les construire.
- Allez dans le dossier nouvellement créé après l'extraction
cd curl-7.67.0
- Configurez avec SSL comme ci-dessous
./configure --with-ssl
- Vous verrez une sortie comme ci-dessous.
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
- Installons-les
make
make install
Cela prendra quelques secondes pour terminer, et une fois terminé; vous pouvez vérifier la version pour vous assurer qu'elle a été installée avec succès.
Building cURL on 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ù la cURL téléchargée est extraite
- Installez les dépendances
apt-get install -y binutils-common binutils make
- Si vous n'avez pas les dépendances ci-dessus (binutils) installées, vous pouvez obtenir l'erreur suivante.
configure: error: ar not found in PATH. Cannot continue without ar.
- Et il est temps de construire maintenant avec le
configure
commander.
./configure --with-ssl
- Si aucune erreur de l'exécution ci-dessus, installez enfin avec la commande make.
make
make install
C'est tout!
Verification
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
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets
#
Conclusion
Vous voyez, c'est facile quand vous avez les étapes. J'espère que cela vous aidera à installer cURL à partir de la source.