平台與維運 2026 年 6 月 22 日

Distrobox 以 Go 全面重寫,v2 RC 正式亮相

平台與維運 DevOps — 2026-06-22 Dist…





平台與維運 DevOps — 2026-06-22

Distrobox 以 Go 全面重寫,v2 RC 正式亮相

distrobox.it · 2026-06-22

容器桌面整合工具 Distrobox 宣布完成以 Go 語言全面重寫的 v2.0.0-rc.2,目前以 Release Candidate 形式公開,v1 仍維持為穩定生產版本。此次改寫是 Distrobox 專案迄今規模最大的架構變動,目標是在保持向後相容性的前提下,徹底解決原 Shell 腳本實作的維護瓶頸。

為何從 Shell 切換到 Go

原始的 Distrobox 以純 Shell 腳本編寫,在功能快速擴張後,開發團隊遭遇了缺乏模組系統、測試框架與可維護性不足等問題。官方公告直言:「Shell 沒有合適的模組重用機制、沒有順手的測試引擎,且程式碼模式難以維護。」Go 被選中,主要因為它擁有廣泛的社群基礎、完善的工具鏈、極少的外部依賴,以及對跨架構編譯的原生支援。

效能並非本次重寫的首要目標,但初步測試結果令人意外:在常見使用場景下,v2 呈現出明顯的效能提升。開發團隊坦承這是額外收穫,而非設計優先項目。

部署形態與相容性

v2 以單一二進位檔發布,不再附帶 distrobox-enterdistrobox-create 等獨立可執行檔,改為統一的子命令形式,例如 distrobox enterdistrobox create。CLI 參數、manifest 檔案與設定檔格式保持不變,現有 v1 容器可直接在 v2 下運行,唯一例外是已匯出的二進位與桌面應用程式需重新匯出。

# v1 寫法(仍相容)
distrobox-enter mybox

# v2 新寫法
distrobox enter mybox

對於想投入 v2 開發的貢獻者,團隊要求在提交 PR 前必須先閱讀架構文件,所有變更應推送至 next 分支,並需要本地安裝 Go 1.x 工具鏈。

目前狀態與展望

v2.0.0-rc.1(2024 年 3 月)到 v2.0.0-rc.2(2024 年 4 月),修補重點包括:Podman provider 修正、NVIDIA 環境自動偵測增強、容器列表改為字母排序,以及匯出 desktop 檔時去除多餘空白字元導致的相容性問題。v2 的正式穩定版目前尚無固定發布時程,以達到與 v1 功能同等且無回歸為條件。

這是一個典型的「基礎設施工具用腳本起家、成長後以系統語言重寫」的案例。對於平台工程與容器環境管理感興趣的讀者,可持續追蹤 GitHub next 分支的進展。

原始來源:distrobox.it 官方公告 · GitHub Releases


postmarketOS v26.06「Alpen Avocado」發布:GNOME 50、Plymouth 啟動畫面與全新核心套件架構

postmarketos.org · 2026-06-21

行動裝置 Linux 發行版 postmarketOS 於 2026 年 6 月 21 日正式推出 v26.06,代號「Alpen Avocado」,這是其時間性版號體系下的最新快照。本次發布底層升級幅度顯著,涵蓋 GNOME 50、KDE Plasma Mobile 6.6.5、systemd 261,並正式以 Plymouth 取代 pbsplash 作為開機動畫方案。

基礎系統更新

postmarketOS v26.06 以 Alpine Linux 3.24 為基礎,將 systemd 從 257 大幅升至 261,帶入雲端 IMDS 子系統、Live Update Orchestration 以及 boot secret 等新能力(詳見本期 systemd 文章)。預設的特權提升工具也完成世代交替,doas 換為 sudo-rs,後者以 Rust 重寫,具備更完整的 sudoers 相容性。

使用者介面更新一覽

  • GNOME 50:桌面版升至最新,行動版因穩定性考量維持在 48.mobile.0(含 crash 修復)
  • KDE Plasma Mobile 6.6.5:從 6.5.6 升級
  • Phosh 0.55.0:從 0.51.0 升級;顯示管理器由 tinydm 遷移至 greetd + phrog
  • Plasma Bigscreen:自 v24.06 缺席後重新納入支援
  • Sxmo 1.18.1:維持不變

KDE 桌面環境的登入管理器也完成替換,從 sddm 改為 plasma-login-manager,進一步整合 Wayland 原生支援。

開機體驗與電話功能

開機流程迎來多項改善:pbsplash 正式退役,由 Plymouth 接手,支援畫面旋轉,並可在按下 ESC 或電源鍵後直接顯示開機日誌,方便除錯。支援的裝置現在可在開機時觸發震動回饋,為無螢幕初始化提供更直觀的狀態提示。ModemManager 升級帶來了細胞廣播(cell broadcast)支援,讓緊急警報等功能在更多裝置上可用。

核心套件架構重整

本版引入通用核心套件 linux-postmarketos-mainlinelinux-postmarketos-stablelinux-postmarketos-lts讓使用者可持續獲得核心更新,而無須等待下一個版本快照。這是 postmarketOS 在長期維護性上的重要架構調整。

裝置支援方面,社群分類(Community)含 47 個裝置家族,涵蓋 Fairphone 4、PinePhone 系列、Librem 5、OnePlus 6/6T、Samsung Galaxy S9 等;測試分類(Testing)共 254 款裝置。ASUS MeMO Pad 7、Microsoft Surface RT 等因核心維護狀況不佳,從 Community 降至 Testing 分類。已知問題包含六項,涉及儲存空間消耗、Phosh 提示框、亮度顯示,以及特定裝置的音量控制異常。

原始來源:postmarketOS 官方部落格


systemd v261 釋出:雲端 IMDS 子系統、Live Update Orchestration 與動態連結大改造

github.com/systemd/systemd · 2026-06-19

systemd 於 2026 年 6 月 19 日正式發布 v261,帶來三大核心新功能:雲端 Instance Metadata Service(IMDS)子系統、Boot Secret 機制,以及 Live Update Orchestration(LUO)整合。此版本同時對動態連結依賴進行了大規模重構,多個關鍵函式庫改為 dlopen() 載入,大幅降低硬性依賴門檻。

雲端 IMDS 子系統

新增的 systemd-imdsd 服務提供 Varlink IPC 介面存取雲端供應商的 metadata,並透過 hwdb 內建辨識多個主流平台,包含 Amazon EC2、Microsoft Azure、Google Compute Engine、Hetzner、Oracle Cloud、Scaleway、Tencent Cloud、Alibaba ECS 與 Vultr。systemd-imds 工具可將 IMDS 提供的欄位匯入系統憑證,並進行量測驗證(measurement verification)。

對雲端環境的原生整合,讓 systemd 能在不依賴外部 agent 的情況下直接讀取執行個體 metadata 並套用至啟動流程,簡化自動化初始化的設定複雜度。

Boot Secret 與 Live Update Orchestration

systemd-stub 現在會維護一個從 EFI 變數衍生的「boot secret」,在 initrd 中以 /.extra/boot-secret 路徑傳遞給作業系統,作為沒有 TPM 硬體時的備援金鑰素材。這對虛擬機、嵌入式裝置或舊式硬體特別有用,無需額外採購 TPM 模組即可獲得一定程度的開機時期密鑰隔離。新增的 systemd-tpm2-swtpm.service 亦提供軟體 TPM 備援選項。

PID 1 現在支援與 Linux 核心的 Live Update Orchestration(LUO)及 Kexec Handover(KHO)機制整合,在 kexec 執行期間保留 Unit 的 FD Stores 狀態,搭配 memfd recovery 實現核心切換後的服務狀態延續,為零停機核心更新奠定基礎。

動態連結重構

本版最具影響力的架構變動之一是多個函式庫改用 dlopen() 動態載入,包含 libgnutlslibmicrohttpdlibcurllibcryptolibssllibfdisklibcryptsetup,這些不再是硬性連結依賴。這對嵌入式或精簡化的 Linux 系統特別有意義,可視需求選擇性提供這些函式庫。

Varlink 介面也持續擴張,新增 Job 管理、Unit 暫態(Transient)與關機請求(Shutdown)三個新介面。sd-event 函式庫新增 CPU 與 IO 壓力事件(pressure event)支援,讓服務可更精準地響應系統資源壓力。

棄用與移除項目

udev 資料庫版本 0 的支援正式移除,表示不再支援從 v247 以前版本的即時升級。多個 DHCPServer 設定項目被新的 DHCPRelay 組態取代。/run/boot-loader-entries/ 目錄與 systemd-sysupdated D-Bus API 被標記為計畫在 v262 移除。

其他值得注意的變更:systemd-nspawn--user= 參數重新命名為 --uid=;新增 ConditionFraction= 提供跨機群的服務分階段推出能力;musl 最低版本要求提升至 1.2.6libsystemd 不再保證連結至 libm,需要浮點運算的下游套件應自行顯式宣告 libm 依賴。

原始來源:systemd v261 GitHub Release Notes · LWN.net 報導



End of article
0
Would love your thoughts, please comment.x
()
x