首页 >系统教程 >LINUX >Curl 8.9.0发布:新功能,错误修正以及如何安装

Curl 8.9.0发布:新功能,错误修正以及如何安装

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原创
2025-03-15 11:05:09469浏览

Curl 8.9.0 重磅发布:260 个错误修复和多项改进

瑞典开源开发者 Daniel Stenberg 宣布发布 Curl 8.9.0 版本,这是该项目发展史上的一个重要里程碑。此版本包含惊人的 260 个错误修复、11 项更改和 2 个安全修复。

目录

  • 安全增强
  • 新功能
  • 改进
    • 新选项
  • 重要的错误修复
  • 下载和安装 Curl 8.9.0
  • 展望未来:Curl 8.10.0

Curl 8.9.0 版本统计

Curl 是开源生态系统中最古老和最成熟的软件之一。

Curl 8.9.0 是该软件的第 258 个版本,展示了该项目对改进和创新的持续承诺。

新版本包含 11 项更改和令人印象深刻的 260 个错误修复,为该项目创下了记录。这些改进来自 80 位贡献者(包括 38 位新手)的 423 次提交。此版本还收到了 47 位作者的贡献,其中 16 位是首次贡献者,这展示了该项目不断壮大的社区。

这使得贡献者的总数达到令人印象深刻的 3209 位,迄今为止已有 1288 位作者为该项目做出了贡献。

以下是 Curl 8.9.0 版本统计的简要总结:

  • 第 258 个版本,
  • 实施了 11 项更改,
  • 添加了 260 个错误修复,
  • 进行了 423 次提交,
  • 80 位贡献者,包括 38 位新手,
  • 47 位作者,其中 16 位是首次贡献者。

安全增强

安全仍然是 Curl 的首要任务。8.9.0 版本解决了 两个漏洞: CVE-2024-6197CVE-2024-6874。这些修复进一步增强了 Curl 的安全特性。

第一个漏洞,CVE-2024-6197,是 ASN1 解析器中的一个中等严重性问题。此漏洞涉及在 utf8asn1str 函数中释放堆栈缓冲区。

当 utf8asn1str 函数检测到无效字段并返回错误时,libcurl 的 ASN1 解析器中会出现此问题。不幸的是,它还会在 4 字节的局部堆栈缓冲区上调用 free()。

第二个漏洞,CVE-2024-6874,是一个与 URL API 中的 punycode 转换相关的低严重性问题。

此问题出现在 libcurl 的 URL API 函数 curl_url_get() 中,该函数提供 punycode 到 IDN 的转换。当转换正好为 256 字节的名称时,当构建为使用 macidn IDN 后端时,libcurl 会读取堆栈缓冲区之外的内容。然后,转换函数会完全填充提供的缓冲区,但不会以 null 结尾。

新功能

Curl 8.9.0 引入了几个新的命令行选项来增强其功能。用户现在可以使用 --ip-tos 选项设置 IP 服务类型/流量类别。

--mptcp 选项启用多路径 TCP 连接,这可能会提高网络性能。

对于本地网络管理,--vlan-priority 选项允许设置 IP 流量的 VLAN 优先级字段。

最后,--keepalive-cnt 选项允许用户指定在将连接标记为失效之前的 keepalive 探测次数。

改进

此更新为 Curl 的功能带来了各种增强。GnuTLSWolfSSL 现在都支持 CA 缓存,这可以显著加快串行 TLS 连接的速度。

MbedTLS 添加了对 CURLOPT_CERTINFO 的支持,允许应用程序检索证书信息。

URL API 引入了 CURLU_NO_GUESS_SCHEME 以更好地进行方案检测。此外,用户现在可以同时将连接绑定到接口和 IP,从而在网络配置中提供更大的灵活性。

新选项

Curl 8.9.0 引入了一个新的 curl_easy_setopt() 选项和四个新的命令行选项。这些新增功能扩展了 Curl 的功能,为用户提供了更多工具和灵活性。

重要的错误修复

此版本包含创纪录的 260 个错误修复,这是 Curl 长期历史上最多的一次。这些改进涵盖了各个领域,包括对 CMake 和配置脚本的许多增强。

文档和帮助功能已得到改进,以提供更好的用户体验。团队解决了 DNS over HTTPS (DoH) 实现中的内存泄漏和崩溃问题。

HTTPS、QUIC 和 TLS 连接的处理得到了改进。此版本还包括对各种操作系统和 SSL 库的更好支持,使 Curl 在不同平台上更加通用。

以下是此版本中一些重要的错误修复:

  • cmake: 26 个单独的错误修复。
  • configure: 10 个单独的错误修复。
  • 帮助类别清理: 通过列出类别和清理演示文稿来改进 --help 输出。
  • 3xx 回复: 允许 3xx 回复的 etag 和 content-disposition。
  • 文档: 无数的修复、润色和更正。
  • 测试摘要: 在摘要中显示失败测试的名称和关键字。
  • GetAddrInfoExW: 避免与模拟一起使用。
  • AWS Sigv4: URL 编码规范路径。
  • DoH (DNS over HTTPS): 包括清理、内存泄漏解决和零长度 HTTPS RR 崩溃修复的各种修复。
  • AppleIDN: 修复了 ß 的处理。
  • OpenSSL 1.x: 修复了禁用 md4 的编译问题。
  • 进度更新: 在连接失败时添加了最终进度更新。
  • Multi: 在 RESOLVING 阶段修复了 pollset。
  • QUIC: 启用了 UDP GRO 并添加了关闭支持,现在需要 OpenSSL 3.3。
  • 输入转换: 修复了输入的 CRLF 转换。
  • SMTP: 修复了 SMTP 的 starttls。
  • TCP keepalive: 在 DragonFly BSD 上从毫秒更改为秒,并在 Solaris 上支持参数
  • TLS 和 TCP: 改进了关闭。
  • GnuTLS: 在检查证书时传入 SNI 名称而不是主机名,并纠正了 QUIC 的 TLS 版本检查。
  • mbedTLS v3.6.0: 添加了解决方法。
  • X509 ASN.1 解析器: 多个修复。

凭借众多错误修复、新选项和安全增强功能,此版本确保 Curl 仍然是强大的可靠数据传输工具。

下载和安装 Curl 8.9.0

您始终可以从 curl.se 下载新的 Curl 版本。由于此版本是新的,因此尚未为大多数 Linux 发行版打包。但不用担心。您可以使用 GNU Stow 从源代码安装最新的 Curl。

1. 确保您的系统软件包数据库是最新的。

<code>sudo apt update   # Debian/Ubuntu 系统
sudo yum update   # CentOS/RHEL 系统
sudo dnf update   # Fedora 系统
sudo pacman -Syu  # Arch Linux 系统</code>

2. 如果尚未安装必要的 开发工具,请安装它们。

<code>sudo apt install build-essential   # Debian/Ubuntu
sudo yum groupinstall "Development Tools"   # CentOS/RHEL
sudo dnf groupinstall "Development Tools"   # Fedora
sudo pacman -S base-devel   # Arch Linux</code>

如果您想使用 OpenSSL 后端编译 Curl,您还需要安装 OpenSSL 开发库。例如,在基于 Debian 的系统上,您可以使用以下命令安装 OpenSSL 开发库:

<code>sudo apt install libssl-dev</code>

如果您想使用 GnuTLS 后端编译 Curl,请在基于 Debian 的系统上安装以下内容:

<code>sudo apt install libgnutls28-dev libgnutls30</code>

3. 安装 GNU Stow。

<code>sudo pacman -S stow     # Arch Linux
sudo apt install stow   # Debian/Ubuntu
sudo yum install stow   # 旧版 CentOS/RHEL
sudo dnf install stow   # 最新 Fedora/RHEL/AlmaLinux/Rocky Linux</code>

4. 从其官方 releases 页面下载最新的 Curl 源代码并解压缩。

<code>wget https://github.com/curl/curl/releases/download/curl-8_9_0/curl-8.9.0.tar.gz
tar xvf curl-8.9.0.tar.gz</code>

5. 使用前缀配置构建。

进入解压缩的目录:

<code>cd curl-8.9.0</code>

使用 TLS 后端和安装目录配置构建,以便由 GNU Stow 管理。

<code>./configure --with-ssl --prefix=/usr/local/stow/curl-8.9.0</code>

如果您想使用 GnuTLS 配置 Curl,请改用以下命令:

<code>./configure --with-gnutls --prefix=/usr/local/stow/curl-8.9.0</code>

6. 编译软件。

<code>make</code>

7. 安装 Curl 8.9.0

<code>sudo make install</code>

8. 使用 GNU Stow 将 Curl 添加到您的 PATH。

更改为 stow 目录并使用 stow 管理安装。

<code>cd /usr/local/stow
sudo stow curl-8.9.0</code>

9. 验证 Curl 是否已正确安装并可用。

<code>curl --version</code>

示例输出:

<code>curl 8.9.0 (x86_64-pc-linux-gnu) libcurl/8.9.0 GnuTLS/3.7.1 zlib/1.2.11 libidn2/2.3.0
Release-Date: 2024-07-24
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTPS-proxy IDN IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets</code>

Curl 8.9.0 Released: New Features, Bugfixes, and How to Install

展望未来:Curl 8.10.0

由于 Curl 8.9.0 的发布周期延长,开发者表示下一个版本 8.10.0 将缩短周期。

他还补充说,Curl 8.10.0 的功能窗口只有两周,这可能会影响可以合并的新功能和更改的数量。

尽管如此,仍有大量待合并的请求请求正在等待发布窗口打开。

如果一切顺利,Curl 8.10.0 预计将于 2024 年 9 月 11 日 发布。即将发布的版本将延续 Curl 著称的改进和创新传统。

更多详细信息,请查看官方发行说明:

  • Curl 8.9.0 发行说明

相关阅读:

  • Wcurl:一个用户友好的 Curl 包装器,用于轻松下载文件
  • Debian Curl 现在支持 HTTP3:您需要了解的内容
  • 如何在 Debian 中使用 GnuTLS 后端安装 Curl

请注意,图片的格式保持不变,因为我没有修改输入文本中图片的格式信息。 我使用了类似的标题和描述来保持文章大意不变。

以上是Curl 8.9.0发布:新功能,错误修正以及如何安装的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn