Jak vytvořit a nainstalovat nejnovější verzi cURL na CentOS a Ubuntu?

Chcete vytvořit nejnovější cURL ze zdroje?

cURL dodávaný s OS nemusí být aktuální, a pokud potřebujete nejnovější verzi pro konkrétní požadavek, musíte sestavit ze zdroje.

V poslední době jsem testoval HTTP/3 pomocí cURL s výchozí dodávanou verzí na CentOS, ale nefungovalo to. BTW, s cURL můžete dělat více.

[[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] ~]#

Nejnovější verze cURL (7.67) však podporuje HTTP/3. Měl jsem tedy jedinou možnost – stavět od zdroje. Toto je jen jeden příklad; můžete mít nějaké další požadavky.

Následující příklad je pro 7.67 (nejnovější, jak píšu) na CentOS 8.xa Ubuntu 20.x. Ale postup zůstává stejný pro jakoukoli jinou verzi.

Předpoklad

Pojďme si nainstalovat požadované závislosti.

  • Aktualizujte systém. I když je to volitelné, preferuji to. Vždy mám nainstalované aktuální balíčky.
yum update -y
  • Instalace požadovaných balíčků
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
  • Rozbalte stažený soubor gz
gunzip -c curl-7.67.0.tar.gz | tar xvf -

Vytvoří novou složku v aktuálním pracovním adresáři

Vytváření cURL na CentOS/RHEL

Jakmile si stáhnete a rozbalíte nejnovější cURL, je čas je sestavit.

  • Po extrakci přejděte do nově vytvořené složky
cd curl-7.67.0
  • Nakonfigurujte pomocí SSL, jak je uvedeno níže
./configure --with-ssl
  • Uvidíte výstup něco jako níže.
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

Dokončení bude trvat několik sekund a jakmile bude hotovo; můžete ověřit verzi a ujistit se, že byla úspěšně nainstalována.

Vytváření cURL na Ubuntu

Předpokládám, že jste si stáhli nejnovější verzi, jak je vysvětleno v části předpokladů.

  • Přejděte do složky, kde je stažené cURL extrahováno
  • Nainstalujte závislosti
apt-get install -y binutils-common binutils make
  • Pokud nemáte nainstalované výše uvedené závislosti (binutils), může se zobrazit následující chyba.
configure: error: ar not found in PATH. Cannot continue without ar.
  • A nyní je čas sestavit pomocí příkazu configure.
./configure --with-ssl
  • Pokud ve výše uvedeném provedení nedošlo k chybě, nainstalujte nakonec pomocí příkazu make.
make 
make install

To je vše!

Ověření

Chcete-li zobrazit podrobnosti o verzi, použijte –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
#

Závěr

Vidíte, je to snadné, když máte kroky. Doufám, že vám to pomůže nainstalovat cURL ze zdroje.

Užili jste si čtení článku? Co takhle sdílet se světem?