如何在CentOS和Ubuntu上构建和安装最新版本的cURL?

想要从源代码构建最新的cURL吗?

操作系统自带的cURL可能不是最新的版本,如果您需要满足特定需求的最新版本,则需要从源代码构建。

最近,我在CentOS上使用cURL的默认版本进行了测试,但是那样做不起作用。顺便说一下,您还可以使用cURL进行更多操作。

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

然而,最新的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
  • 您将看到类似下面的输出。

配置: 配置为构建curl / libcurl:

主机设置: x86_64-pc-linux-gnu
安装前缀: /usr/local
编译器: gcc
CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers -pthread
CPPFLAGS:
LDFLAGS:
LIBS: -lssl -lcrypto -lssl -lcrypto -lz

curl版本: 7.67.0
SSL: 已启用 (OpenSSL)
SSH: 否 (–with-libssh2)
zlib: 已启用
brotli: 否 (–with-brotli)
GSS-API: 否 (–with-gssapi)
TLS-SRP: 否 (–enable-tls-srp)
解析器: POSIX线程
IPv6: 已启用
Unix套接字: 已启用
IDN: 否 (–with-{libidn2,winidn})
构建libcurl: Shared=yes, Static=yes
内置手册: 已启用
–libcurl选项: 已启用 (–disable-libcurl-option)
详细错误: 已启用 (–disable-verbose)
代码覆盖: 已禁用
SSPI: 否 (–enable-sspi)
ca证书束: /etc/pki/tls/certs/ca-bundle.crt
ca证书路径: 否
ca fallback: 否
LDAP: 否 (–enable-ldap / –with-ldap-lib / –with-lber-lib)
LDAPS: 否 (–enable-ldaps)
RTSP: 已启用
RTMP: 否 (–with-librtmp)
Metalink: 否 (–with-libmetalink)
PSL: 否 (未找到libpsl)
Alt-svc: 否 (–enable-alt-svc)
HTTP2: 已禁用 (–with-nghttp2)
HTTP3: 已禁用 (–with-ngtcp2, –with-quiche)
ESNI: 否 (–enable-esni)
协议: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
特性: SSL IPv6 UnixSockets libz AsynchDNS NTLM NTLM_WB HTTPS-proxy

  • 让我们安装它们
make
make install

完成需要几秒钟时间,一旦完成,您可以验证版本以确保安装成功。

在Ubuntu上构建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。

类似文章