目录
Curl 8.9.0 版本统计
安全增强
新功能
改进
新选项
重要的错误修复
下载和安装 Curl 8.9.0
展望未来:Curl 8.10.0
首页 系统教程 操作系统 Curl 8.9.0发布:新功能,错误修正以及如何安装

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

Mar 15, 2025 am 11:05 AM

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1657
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1229
24
Linux的5个基本组件是什么? Linux的5个基本组件是什么? Apr 06, 2025 am 12:05 AM

Linux的五个基本组件是:1.内核,管理硬件资源;2.系统库,提供函数和服务;3.Shell,用户与系统交互的接口;4.文件系统,存储和组织数据;5.应用程序,利用系统资源实现功能。

如何学习Linux基础知识? 如何学习Linux基础知识? Apr 10, 2025 am 09:32 AM

Linux基础学习从零开始的方法包括:1.了解文件系统和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.学习文件操作,如创建和编辑文件,4.探索高级用法如管道和grep命令,5.掌握调试技巧和性能优化,6.通过实践和探索不断提升技能。

Linux最有用的是什么? Linux最有用的是什么? Apr 09, 2025 am 12:02 AM

Linux在服务器、嵌入式系统和桌面环境中的应用广泛。1)在服务器领域,Linux因其稳定性和安全性成为托管网站、数据库和应用的理想选择。2)在嵌入式系统中,Linux因其高度定制性和高效性而受欢迎。3)在桌面环境中,Linux提供了多种桌面环境,满足不同用户需求。

什么是Linux设备? 什么是Linux设备? Apr 05, 2025 am 12:04 AM

Linux设备是运行Linux操作系统的硬件设备,包括服务器、个人电脑、智能手机和嵌入式系统。它们利用Linux的强大功能执行各种任务,如网站托管和大数据分析。

互联网在Linux上运行吗? 互联网在Linux上运行吗? Apr 14, 2025 am 12:03 AM

互联网运行不依赖单一操作系统,但Linux在其中扮演重要角色。Linux广泛应用于服务器和网络设备,因其稳定性、安全性和可扩展性受欢迎。

Linux操作是什么? Linux操作是什么? Apr 13, 2025 am 12:20 AM

Linux操作系统的核心是其命令行界面,通过命令行可以执行各种操作。1.文件和目录操作使用ls、cd、mkdir、rm等命令管理文件和目录。2.用户和权限管理通过useradd、passwd、chmod等命令确保系统安全和资源分配。3.进程管理使用ps、kill等命令监控和控制系统进程。4.网络操作包括ping、ifconfig、ssh等命令配置和管理网络连接。5.系统监控和维护通过top、df、du等命令了解系统运行状态和资源使用情况。

Linux的缺点是什么? Linux的缺点是什么? Apr 08, 2025 am 12:01 AM

Linux的缺点包括用户体验、软件兼容性、硬件支持和学习曲线。1.用户体验不如Windows或macOS友好,依赖命令行界面。2.软件兼容性不如其他系统,缺乏许多商业软件的原生版本。3.硬件支持不如Windows全面,可能需要手动编译驱动程序。4.学习曲线较陡峭,掌握命令行操作需要时间和耐心。

Linux难以学习吗? Linux难以学习吗? Apr 07, 2025 am 12:01 AM

Linuxisnothardtolearn,butthedifficultydependsonyourbackgroundandgoals.ForthosewithOSexperience,especiallycommand-linefamiliarity,Linuxisaneasytransition.Beginnersmayfaceasteeperlearningcurvebutcanmanagewithproperresources.Linux'sopen-sourcenature,bas

See all articles