首頁 >系統教程 >Linux >Curl 8.9.0發布:新功能,錯誤修正以及如何安裝

Curl 8.9.0發布:新功能,錯誤修正以及如何安裝

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原創
2025-03-15 11:05:09517瀏覽

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
上一篇:Linux內核6.10 \下一篇:Linux內核6.10 \