NixOS 25.11 Xantusia:所有新功能和主要變化

  • NixOS 25.11 “Xantusia” 更新了數千個軟體包、模組和選項,專注於清潔性和安全性。
  • GNOME 49 和 LLVM 21、CMake 4 等工具鏈更新以及新的語言版本,使桌面系統向前邁進了一大步。
  • 資料庫、容器和服務中引入了許多不相容的變更,需要對現有配置進行審查。
  • 許多應用程式正在被更名或停用,取而代之的是更現代的替代方案,這推動了生態系統向維護良好且安全的軟體發展。

尼克斯操作系統 25.11

NixOS 強勢回歸, 尼克斯操作系統 25.11, 一個帶來深刻變化的版本 無論是系統本身還是圍繞它所建構的龐大軟體包生態系統,都存在著許多問題。這款代號為「Xantusia」的系統現已發布,它為桌面、伺服器、開發和雲端部署帶來了許多令人興奮的新功能,但同時也存在相當多的不相容性和已棄用的軟體包,因此在更新之前應仔細檢查。

在本文中,我們將看到 所有重要新聞 基於 NixOS 25.11 和 Nixpkgs 軟體包庫:關鍵更新包括 GNOME 49、LLVM 21 和 ROCm 6.3;對 Go、Rust、Node.js、PostgreSQL 和 Docker 進行了重大更改;重命名了服務;新增了模組;並增加了配置選項。我們還將討論一個實際案例,該案例涉及編譯 Discord 時遇到的代理問題,以及如何在新環境中解決這些問題。

NixOS 25.11 “Xantusia”:生命週期和發布數據

新穩定版本 NixOS 25.11 “Xantusia”現在可以透過穩定管道在任何系統上安裝和更新。此版本將獲得為期七個月的安全修補程式和錯誤修復,直至 2026 年 6 月 30 日,因此如果您是從先前的版本升級而來,我們強烈推薦您升級到此版本。

之前那個穩定的版本, NixOS 25.05 “Warbler”此版本將於 2025 年 12 月 31 日起正式過時,並將停止接收安全更新。如果您仍在使用 25.05 或更早的版本,現在是時候冷靜地規劃遷移到 25.11 了,請仔細閱讀本文中將詳細介紹的不相容變更。

此次發布會也是一次展示… 發展速度 在 NixOS 25.05 到 NixOS 25.11 版本之間,共有 2742 位貢獻者參與其中,他們總共提交了不少於 59.430 次 Nixpacks 和系統配置相關的程式碼。這些數字背後包含了從細微的修復到邊緣軟體包的改進,再到關鍵發行版模組的重大重構等方方面面的貢獻。

Nixpkgs:NixOS 25.11 中新增、更新和移除的軟體包

Nixpkgs軟體包集合,即 骨幹 不僅是 NixOS,任何在 Linux 或 macOS 上使用 Nix 套件管理器的系統,在這個週期都得到了大規模的維護。

一方面,已經存在 新增 7002 個軟體包進一步擴展可用軟體的範圍。這包括從尖端開發工具到桌面應用程式、管理實用程式和科學軟體等各種軟體。

同時,該團隊擁有 更新了 25.252 個現有軟體包這確保了大多數常用軟體都能更新到最新版本,尤其是那些包含安全性修補程式和效能改進的版本。這在需要保證可複現性並同時保持合理更新的環境中至關重要。

為了保持儲存庫的可管理性和安全性,Nixpkgs 採取了以下措施: 已移除 6338 個舊包裹 這些軟體包要么已停止維護,要么已損壞,要么已在上游過時。在許多情況下,Nixpkgs 軟體包樹本身就存在直接的替代方案,但在其他情況下,為了避免安全或編譯問題,這些替代方案會直接停用。

NixOS 模組和設定選項

除了軟體包之外,NixOS 還以其強大的聲明式模組系統而聞名。這一周期包括 新增107個模組這些更新增加了對新服務、守護程式、應用程式和系統配置的支援。它們還帶來了 1778 個新的配置選項,進一步提高了系統描述的精細程度。

另一方面,也存在一些問題。 移除 41 個模組 此外,還有 807 個配置選項已過時、失效或被更現代的替代方案取代。如果您要重複使用舊配置,最好在升級前查看棄用通知並相應地修改您的檔案。

桌面環境的顯著新特性:GNOME 49 “Brescia”

桌面用戶面臨的一大新功能是更新至 GNOME 49 “布雷西亞”此版本的桌面環境向 Wayland 邁出了決定性的一步,並取消了基於 X11 的會話,如果您維護了明確依賴 Xorg 的舊配置或擴展,這可能是一個重大變化。

GNOME 49 包含 新的應用 此次更新包括重新設計的影片播放器、更新的文件檢視器、重新設計的日曆以及許多使用者體驗的改進。如果您依賴任何高度特定的功能或複雜的擴充程序,建議您查閱官方的 GNOME 發行說明。

C 編譯器和工具鏈:LLVM、GCC 和 CMake

在編譯部分,NixOS 25.11 更新 LLVM 至版本 21對於使用 Clang 工具鏈的 C、C++ 或 Rust 開發者而言,這是一個重大的進步。此版本包含最佳化改進、新增支援的目標,以及可能導致某些專案行為改變的警告訊息的調整。

編譯器 GCC 仍保留在第 14 分支這是一個已在生產環境中建立和測試過的版本。這使得與仍依賴該系列編譯器的專案保持相容性變得更加容易,避免了每次系統更新帶來的破壞性變更。

就其本身而言, CMake 已更新至版本 4這可以為現代建置系統啟用新功能,但也可能需要對使用過時語法或命令的項目進行調整。如果您有較舊的 CMake 模板,最好在完成遷移之前執行建置測試。

GPU、運算以及 ROCm 和 CUDA 的變化

對於那些使用 GPU 加速的人來說,分支 rocmPackages_6 升級到 ROCm 6.3rocmPackages_5 它已從樹上移除。部分結構已重新調整: rocmPackages.rocm-thunk 它作為一個單獨的軟體包消失了,並被整合到… rocmPackages.clr,而 rocmPackages.clang-ocl 他在2023年被AMD放棄後退休。

在平行下, CUDA 10 的官方支援已終止正如 NixOS 24.11 發行說明中已經提到的那樣,仍然支援非常老舊硬體的用戶應該考慮升級他們的 GPU,或者查看是否有其他製造商或後端維護的替代方案。

瀏覽器、代理程式和 Discord 編譯問題

這個版本暴露出的一個實際問題是: 編譯過程中使用代理使用者描述如何成功下載檔案。 discord-0.0.116.tar.gz 從瀏覽器使用公司代理,但運行時 nixos-rebuild 使用 curl 下載反覆失敗並出現錯誤 curl: (35) Recv failure: Connection reset by peer 直到所有嘗試都失敗為止。

Nix錯誤訊息表明 Discord壓縮檔下載失敗 沒有鏡子,因此推導過程被破壞了。 discord-0.0.116.tar.gz.drv 進而,建構使用者環境和整個系統。儘管日誌顯示了自動重試的警告,但諸如以下變數: https_proxy o all_proxy這表示建置沙箱內的執行環境無法辨識使用者的網路配置。

在NixOS中, 標準代理環境變數 如果使用嚴格的沙箱機制,或者係統配置未將它們匯出到建置中,則這些變更可能不會直接傳播到分支。典型的解決方案是將 Nix 選項配置為: nix.extraOptions 包括 http_proxy, https_proxy 和公司,或暫時停用該機器的沙箱(不建議長期這樣做),同時調整代理伺服器以允許來自建構者 IP 的流量。

另一個選擇是訴諸… 已包含 Discord 的二進位緩存 或其他有問題的軟體包,從而導致 Nix 無法直接下載原始檔。無論如何,這類網路錯誤在 25.11 這樣的版本中會變得更加突出,因為該版本一次更新了許多元件,可能會導致 URL 解析方式出現不同的行為。

網路、容器和 Web 服務

在網路和容器領域,NixOS 25.11 引入了重大變化。 Squid HTTP 代理程式升級至版本 7此版本包含多項不相容的更改,例如移除了 ESI 功能。如需調整自訂設置,建議您查看 Squid 版本說明。

在編曲層面, containerd 更新至其 2.x 分支這會帶來一系列行為上的改變。無論您是直接使用 containerd 還是將其作為平台組件,都必須仔細閱讀 containerd 2.0 的文檔,以避免在生產環境中出現意外情況。

在 Docker 世界中, docker_24 已從樹中移除 因為它已停止支持,並且自 2024 年 6 月起存在已知漏洞。我們的想法是將安裝推送到更新、維護更完善的 Docker 版本。

關於伺服器和控制面板, NetBox 已更新至 4.2 分支。架構和行為層面均有重大變更。 4.0.x 版本已從版本樹中移除,建議使用者在升級前查看 4.1 和 4.2 版本的更新通知。其他服務,例如: matomo 他們預設切換到使用版本 5(不再支援版本 4),並且該軟體包被移除。 matomo-beta 因為現在很容易覆蓋原有版本。 overrideAttrs.

卡夫卡也做出了一個重大飛躍: Apache Kafka 已更新至 4.0 分支。該版本已不再支援 ZooKeeper。所有安裝都必須按照 Apache 基金會的指南遷移到 KRaft 模式。在 NixOS 上,這包括審查配置以移除對 ZooKeeper 的引用並調整代理部署。

NixOS 25.11 中發生變更或消失的服務、守護程式和應用程式

清單 已更名、更新不相容或已停用的軟體包和服務 這個週期很長,這表明他們願意清理舊的或有問題的軟體。

一些值得注意的例子: 海怪 它會消失,建議使用 coolercontrol 作為替代方案; opensmtpd-extras 因為它與 OpenSMTPD 7.6.0+ 不相容,所以被移除,以便為特定軟體包讓路。 opensmtpd-table-*; 札馬德 它停止支援 MySQL,並強制使用者按照官方指南遷移到 PostgreSQL。

在名字的世界裡, Minetest 現在更名為 Luanti 為了反映上游的變化,但保留別名以避免立即造成中斷。同樣地, poac 變更至 cabinpkg, xdragon 變成龍之滴 (帶 xdragon (作為別名) siduck76-st 它被重命名為 st-snazzy還有一些小寫字母:字體 serious-sans 它之所以撤回,是因為上游已將名稱更改為 Serious Shanns,但尚未包裝。

其他項目則直接存檔: gkraken、ephemeral、vocal、fluxus、sm64ex-coop、nexusmods-app、nodePackages.ganache 還有許多軟體被標記為損壞、無人維護或不安全,並從 Nixpacks 中移除。在某些情況下,我們會建議替代方案(例如, sm64coopdx 替換 sm64ex-coop,或 gnome-podcasts y kasts (替換元音)。

在訊息傳遞和隱私環境中,資料包 signald、signaldctl 與 purple-signald 由於長期與 Signal 官方伺服器和 Matrix 伺服器不相容,它們將被停用。 導管 由於開發者停止維護,該漏洞被標記為易受攻擊漏洞。

熱門應用程式的新版本和行為變化

除了消失之外,許多應用程式還會進行更新。 破壞相容性的行為改變。 例如, Grafana Agent 及其模組 他們正在退出市場,轉而支持已經擁有自己服務的 Grafana Alloy。 services.alloyGrafana 建議遷移到 grafana-alloy 並提供完成轉讓所需的文件。

顯示器和麵板的生態系統也在不斷發展: Prometheus 版本升級至 3.x 分支附上官方移民文件, Kanata、Authelia、Helmfile、OpenPolicyAgent 許多其他軟體包也更新到了主要版本,語法、配置格式和預設值都發生了變化。特別是 OPA 軟體包。 rego.v1 現在是預設樣式,將 v0 語法標記為繼承,儘管仍然存在相容模式。

桌面電腦領域也緊跟著: GIMP 3.0 顯示為 gimp3, 草莓已更新至 1.2 版本 並放棄了 VLC 和 Qt5 後端(軟體包消失了) strawberry-qt5 以及一些使用 GStreamer/VLC 的選項), 羅菲 版本從 1.7.5 升級到 1.7.6,二進位插件的 ABI 也發生了變化,並且 tauon 7.9.0+ 您的資料庫正在遷移到向後不相容的架構,因此建議您先進行備份。 ~/.local/share/TauonMusicBox 在開啟新版本之前。

在網頁開發和JavaScript領域, nodejs_latest 演進至 24.x 系列被消除 nodejs_23 y nodejs_18並清理那些不應該被設為全域的 Node 套件(例如): webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app建議在專案層面安裝這些工具。例如: pnpm 版本升級至 10 附二級包裝 pnpm_9 適用於需要相容性的使用者。

字體也做了一些調整: nerdfonts 分為多個獨立的軟體包。 在命名空間下 nerd-fonts 字體安裝路徑也發生了變化,現在按字體類型分為不同的目錄(<fontDirName>這迫使我們調整指向舊路由的配置。

核心、硬體和系統環境的變化

在系統層面,它已被放棄。 完全支援 32 位 Darwin僅維護現代平台。此外,三重配置 aarch64-darwin 符合 arm64-apple-darwin 標準符合蘋果和LLVM的預期。

埃爾帕克特 tinycc 然後它將輸出結果分成 dev, doc y lib, 製作 tinycc.out 它僅包含 tcc 二進位和交叉編譯器。在 TPM 中, tpm2-pkcs11 它編譯時不支援 abrmd 預設情況下,它優先使用核心資源管理器;如果您需要使用 abrmd 的變體,它也是存在的。 tpm2-pkcs11.abrmdNixOS 模組會自動根據以下情況進行選擇: security.tpm2.abrmd.

在 udev 中,規則是 libjaylink 他們現在要求加入該組織。 jlink 而不是 plugdev這在 NixOS 中非常罕見。此外,也可以透過會話訪問,因此如果您使用的是標準桌面,則影響有限。

道具 mkBinaryCache 它已現代化並開始使用 zstd 作為預設壓縮

對於生成的二進位緩存您可以選擇繼續。 xz 通過 compression = "xz";這在大多數情況下可以提高二進位檔案的生成和使用效能。

在網路選項中, networking.nat.externalIP 和 externalIPv6 的行為會改變:規則 networking.nat.forwardPorts 這些規則現在僅適用於發送至明確指定 IP 位址的封包。這可以防止意外重定向,但可能需要調整現有的 NAT 定義。

在檔案系統管理中,定義 檔案系統(例如 fileSystems."/") 使用 lib.mkDefault 設定。 來自 NixOS 模組,它允許一次性全部替換,但如果只覆蓋單一屬性而未指定特定屬性,則會出錯。 device否則,您可能會遇到類似這樣的訊息: No device specified for mount point '/'.

NixOS 25.11 的文本編輯、開發環境和各種實用程序

在 Emacs 生態系中,NixOS 25.11 移除 Emacs 28 和 29標準版和適用於 Emacs 28 的 Macport 版本均已包含在內。適用於 Emacs 29 的 Macport 版本仍在維護中,但已針對已知漏洞打上了修補程式。 Racket 也進行了精簡: 由於不安全,racket_7_9 已被撤回。推動使用 Racket 8,從而消除 通量多年來,該公司一直依賴那個無人維護的版本。

文字搜尋引擎 binwalk 3.1.0 它用 Rust 重寫,相關的 Python 模組變得不可用;個人帳戶工具 python3Packages.beancount 它上升至 3.1,與之前的系列保持不變。 beancount_2在電子郵件和命令列介面中, tldr 它改用 Python 客戶端而不是 C 客戶端,並且 喜馬拉雅山 它更新至 1.1.0 版本,其中包含突破性更改,需要進行配置審查。

在各種工具中, nq 1.0 將 fq 和 tq​​ 重新命名為 nqtail 和 nqterm。, 0.10.2 它改變了處理Unicode和轉義序列的方式,並且 ast-grep 刪除該指令 sg 為了避免與 shadow-utils 發生衝突,同時仍允許使用舊版相容版本。 enableLegacySg = true;.

同時,標準對數函數族 nixLog* 它被重寫,在調試級別和調用函數名稱前加上前綴,重新引入了 nixLog 它作為一個無條件日誌記錄器,也會加入函數上下文。這使得調試複雜的派生和鉤子函數變得更加容易。

最後,還有一些測試工具,例如 測試人員.shell檢查 現在,如果未提供該屬性,系統會發出警告。 name這在未來的版本中將成為強制性要求。在 Haskell 中, testTarget 被標記為已過時 有利於 testTargets它接受一個明確的目標列表,而不是一個以空格分隔的字串。

NixOS 25.11 版本整合了大量更改,從 GNOME 49 桌面和大規模軟體包更新到工具鏈、網路服務和相容性策略的深度調整,使其成為任何希望保持 Nix 環境最新狀態而不偏離其核心功能的用戶的關鍵版本。 穩定性和可重複性 這是該項目的特點。

尼克斯操作系統 24.11
相關文章:
關於期待已久的 NixOS 24.11 版本,您需要了解的一切