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

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和Windows之間的日誌記錄和審核有何不同?Linux和Windows之間的日誌記錄和審核有何不同?May 08, 2025 am 12:03 AM

LinuxOffersMoreGranularControlodlogging和audinging,wherwindowsProvidesMoreCentralizedSystem.1)linuxusestoolslikesyslog,rsyslog,rsyslog和journaldforcustomizablegging.2)

什麼是AI? Linux用戶的初學者指南什麼是AI? Linux用戶的初學者指南May 07, 2025 am 11:23 AM

人工智能(AI)是一個詞,現在已經嗡嗡作響了一段時間,從自動駕駛汽車到Siri和Alexa等語音助手,AI正成為我們日常生活的一部分。 但是AI到底是什麼,為什麼Linux用戶應該關心AB

50個初學者和sysadmins的基本Linux命令50個初學者和sysadmins的基本Linux命令May 07, 2025 am 11:12 AM

對於Linux剛接觸的人來說,即使使用Ubuntu和Mint等用戶友好的發行版,使用它仍然會感到具有挑戰性。 儘管這些分佈簡化了許多任務,但通常需要一些手動配置,但是完全利用了L的功能

如何為AI開發設置Linux系統如何為AI開發設置Linux系統May 07, 2025 am 10:55 AM

在上一篇文章中,我們介紹了AI的基礎知識以及它如何適合Linux世界。現在,是時候深入研究並建立Linux系統開始建立您的第一個AI模型了。 無論您是完整的初學者還是進行一些實驗

如何在Linux中安裝Kloxo Web託管控制面板如何在Linux中安裝Kloxo Web託管控制面板May 07, 2025 am 10:52 AM

如果您想輕鬆管理服務器,Kloxo是一個不錯的選擇,因為它是免費的開源Web託管控制面板,可讓您使用簡單,用戶友好的界面來管理服務器和網站。 在本指南中,我們將走路

如何在Linux中使用空格移動文件和文件夾如何在Linux中使用空格移動文件和文件夾May 07, 2025 am 10:17 AM

如果您曾經發現自己正在嘗試移動一堆文件和文件夾的情況,只是被文件夾名稱中的空格所困擾,那麼您並不孤單。 文件名或文件夾名稱中的空間可能會很快變成挫折

See all articles

熱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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境