Hur man bygger och installerar senaste cURL-versionen på CentOS och Ubuntu?

Vill du bygga den senaste cURL från källan?

cURL som levereras med operativsystemet kanske inte är uppdaterad, och om du behöver den senaste versionen för ett visst krav måste du bygga från källan.

På sistone testade jag HTTP/3 med cURL med standardversionen på CentOS, men det fungerade inte. BTW, det finns mer du kan göra med cURL.

[[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
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets 
[[email protected] ~]#

Den senaste cURL-versionen (7.67) stöder dock HTTP/3. Så jag hade bara ett alternativ – bygga från källan. Detta är bara ett exempel; du kanske har några andra krav.

Följande exempel är för 7.67 (senast som jag skriver) på CentOS 8.x och Ubuntu 20.x. Men proceduren förblir densamma för alla andra versioner.

Nödvändig förutsättning

Låt oss installera de nödvändiga beroenden.

  • Uppdatera systemet. Även om detta är valfritt, föredrar jag att göra det. Jag har alltid uppdaterade installerade paket.
yum update -y
  • Installera de nödvändiga paketen
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
  • Extrahera den nedladdade gz-filen
gunzip -c curl-7.67.0.tar.gz | tar xvf -

Det skulle skapa en ny mapp i den nuvarande arbetskatalogen

Bygger cURL på CentOS/RHEL

När du har laddat ner och extraherat den senaste cURL är det dags att bygga dem.

  • Gå in i den nyskapade mappen efter extrahering
cd curl-7.67.0
  • Konfigurera med SSL enligt nedan
./configure --with-ssl
  • Du kommer att se utdata något liknande nedan.
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

Det tar några sekunder att slutföra, och när det är klart; du kan verifiera versionen för att säkerställa att den har installerats framgångsrikt.

Bygger cURL på Ubuntu

Jag antar att du har laddat ner den senaste versionen enligt beskrivningen i förutsättningsavsnittet.

  • Gå till mappen där den nedladdade cURL är extraherad
  • Installera beroenden
apt-get install -y binutils-common binutils make
  • Om du inte har ovanstående beroenden (binutils) installerade kan du få följande fel.
configure: error: ar not found in PATH. Cannot continue without ar.
  • Och det är dags att bygga nu med kommandot configure.
./configure --with-ssl
  • Om inget fel från exekveringen ovan, installera slutligen med kommandot make.
make 
make install

Det är allt!

Verifiering

Använd –version för att se versionsdetaljerna.

# 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
#

Slutsats

Du förstår, det är lätt när du har stegen. Jag hoppas att detta hjälper dig att installera cURL från källan.

Gillade du att läsa artikeln? Vad sägs om att dela med världen?