CentOS 및 Ubuntu에서 최신 cURL 버전을 빌드하고 설치하는 방법은 무엇입니까?

소스에서 최신 cURL을 빌드하고 싶으십니까?

OS와 함께 제공되는 cURL은 최신이 아닐 수 있으며 특정 요구 사항에 대한 최신 버전이 필요한 경우 소스에서 빌드해야 합니다.

최근에 CentOS에서 기본 제공 버전으로 cURL을 사용하여 HTTP/3을 테스트했지만 작동하지 않았습니다. BTW, 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를 지원합니다. 그래서 저는 소스에서 빌드하는 단 하나의 옵션만 가지고 있었습니다. 이것은 한 가지 예일 뿐입니다. 다른 요구 사항이 있을 수 있습니다.

다음 예제는 CentOS 8.x 및 Ubuntu 20.x의 7.67(내가 작성하는 최신 버전)에 대한 것입니다. 그러나 절차는 다른 버전에서도 동일하게 유지됩니다.

전제 조건

필요한 종속성을 설치해 보겠습니다.

  • 시스템을 업데이트합니다. 이것은 선택 사항이지만 그렇게 하는 것을 선호합니다. 항상 최신 패키지가 설치되어 있습니다.
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 -

현재 작업 디렉토리에 새 폴더를 생성합니다.

CentOS/RHEL에서 cURL 빌드

최신 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

완료하는 데 몇 초가 걸리며 완료되면 완료됩니다. 버전을 확인하여 성공적으로 설치되었는지 확인할 수 있습니다.

  Dolphin File Manager에서 Dropbox 지원을 활성화하는 방법

우분투에서 cURL 빌드

전제 조건 섹션에 설명된 대로 최신 버전을 다운로드했다고 가정합니다.

  • 다운로드한 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
#

결론

단계가 있으면 쉽습니다. 이것이 소스에서 cURL을 설치하는 데 도움이 되기를 바랍니다.

기사를 재미있게 읽었습니까? 세상과 함께 나누는 건 어떨까요?