Potřebujete si sami sestavit nejnovější verzi cURL ze zdrojového kódu?
Verze cURL, která je standardně součástí operačního systému, nemusí být vždy aktuální. Pokud potřebujete nejnovější verzi pro specifické potřeby, je kompilace ze zdroje nezbytná.
Nedávno jsem testoval protokol HTTP/3 s cURL, které bylo součástí mého CentOS, ale nefungovalo to správně. Mimochodem, cURL nabízí mnohem více než se zdá na první pohled.
[[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] ~]#
Aktuální verze cURL (7.67) již ale podporuje HTTP/3. Proto mi nezbylo nic jiného, než ji sestavit ze zdrojového kódu. Tento příklad je jen jeden z mnoha. Možná máte i jiné požadavky.
Následující postup je popsán pro verzi 7.67 (nejnovější v době psaní tohoto textu) na systémech CentOS 8.x a Ubuntu 20.x. Nicméně, postup je v podstatě stejný i pro ostatní verze.
Předběžné kroky
Nejprve si nainstalujeme potřebné balíčky.
- Aktualizujte systém. I když to není povinné, doporučuji provést aktualizaci systému před instalací nových balíčků.
yum update -y
- Instalace nezbytných balíčků
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Rozbalení staženého archivu
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Tím se v aktuálním adresáři vytvoří nová složka.
Kompilace cURL na CentOS/RHEL
Po stažení a rozbalení archivu s nejnovějším cURL se můžeme pustit do samotné kompilace.
- Po rozbalení archivu přejdeme do nově vytvořené složky.
cd curl-7.67.0
- Konfigurace s podporou SSL.
./configure --with-ssl
- Měli byste vidět podobný výstup.
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
Kompilace a instalace může trvat několik sekund. Po dokončení ověřte verzi a přesvědčte se, že proběhla úspěšně.
Kompilace cURL na Ubuntu
Předpokládám, že již máte staženou nejnovější verzi podle kroků uvedených v sekci „Předběžné kroky“.
- Přejděte do složky, kam jste extrahovali stažené cURL.
- Nainstalujte potřebné závislosti.
apt-get install -y binutils-common binutils make
- Pokud nemáte nainstalované výše uvedené závislosti (binutils), může se objevit následující chyba.
configure: error: ar not found in PATH. Cannot continue without ar.
- A nyní můžeme provést konfiguraci.
./configure --with-ssl
- Pokud konfigurace proběhla bez chyb, můžete přejít k instalaci pomocí příkazu make.
make make install
A to je vše!
Ověření
Pro zobrazení informací o verzi použijte přepínač –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
Jak vidíte, je to snadné, když znáte správný postup. Doufám, že vám tento návod pomůže úspěšně nainstalovat cURL ze zdrojového kódu.
Líbil se vám tento článek? Podělte se o něj se svými přáteli!