Як зібрати та встановити останню версію cURL на CentOS і Ubuntu?

Хочете створити найновіший cURL із джерела?

cURL, що постачається з ОС, може бути неоновленим, і якщо вам потрібна найновіша версія для певних вимог, вам потрібно створити з вихідного коду.

Останнім часом я тестував HTTP/3 за допомогою cURL із стандартною версією на CentOS, але це не спрацювало. До речі, з 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] ~]#

Однак остання версія cURL (7.67) підтримує HTTP/3. Тож у мене був лише один вихід – будувати з вихідного коду. Це лише один приклад; у вас можуть бути інші вимоги.

Наступний приклад для 7.67 (останньої на момент написання) на CentOS 8.x і Ubuntu 20.x. Але процедура залишається незмінною для будь-якої іншої версії.

Передумова

Давайте встановимо необхідні залежності.

  • Оновіть систему. Хоча це необов’язково, я віддаю перевагу цьому. У мене завжди встановлені найновіші пакети.
yum update -y
  • Встановлення необхідних пакетів
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
  • Розпакуйте завантажений файл gz
gunzip -c curl-7.67.0.tar.gz | tar xvf -

Це створить нову папку в поточному робочому каталозі

Створення cURL на CentOS/RHEL

Після того, як ви завантажили та роздобули останній cURL, настав час їх створити.

  • Перейдіть у новостворену папку після вилучення
cd curl-7.67.0
  • Налаштуйте SSL, як показано нижче
./configure --with-ssl
  • Ви побачите щось на зразок нижче.
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

Це займе кілька секунд, щоб завершити, і після завершення; ви можете перевірити версію, щоб переконатися, що її встановлено успішно.

  40 років потому "Pac-Man" все ще захоплює наші серця

Створення cURL на Ubuntu

Я припускаю, що ви завантажили останню версію, як описано в розділі попередніх умов.

  • Перейдіть до папки, де розпаковано завантажений cURL
  • Встановіть залежності
apt-get install -y binutils-common binutils make
  • Якщо у вас не встановлено зазначені вище залежності (binutils), ви можете отримати таку помилку.
configure: error: ar not found in PATH. Cannot continue without ar.
  • І настав час зібрати за допомогою команди configure.
./configure --with-ssl
  • Якщо під час вищезазначеного виконання не виникло помилок, остаточно встановіть за допомогою команди make.
make 
make install

Це все!

Перевірка

Використовуйте –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
#

Висновок

  Samsung роздуває все за допомогою McAfee — навіть Smart TV

Розумієте, це легко, коли у вас є кроки. Сподіваюся, це допоможе вам встановити cURL із джерела.

Вам сподобалося читати статтю? Як щодо того, щоб поділитися зі світом?