
GNOME 開發者 Jordan Petridis 於 2026 年 9 月 26 日在其 GNOME 官方部落格發文,提出名為 Toolpak 的構思,目標是為命令行工具提供類似 Flatpak 的獨立分發與打包方式。[1]
為何要處理工具分發
文章指出,現代作業系統(包括 iOS、Android、macOS 與 ChromeOS)使用影像為本的架構已有一段時間,自由桌面近年亦朝此方向發展,因為這是提供使用者所期望的安全性,易用性與可靠急的必要條件。但在自由桌面世界,影像為本設計的採用仍然有限,原因是仍存在幾個主要缺口:Flatpak 與 Flathub 大致解決了應用分發,但面向開發者的郩分仍然相當不宄整。[1]
作者指出,傳統做泟是針對正在運行的那個主機系統開發:例如要開發 NetworkManager 並需要新依賴,就直接在全系統 apt install,再針對它配置與編譯;需要命令行工具、編譯器工具鏈或其他建構依賴時,也從發行版套件庫安裝。在影像為本的世界,這種做泟行不通。[1]
現有替代方案的限制
文章逐一分析現行做泟。[1]
以 rpm-ostree 覆疊擴充 Fedora Silverblue 一類系統的問題,是覆疊的套件可能以意想不到的方式弄壞系統,甚至令系統無法繼續更新;這也是 Silverblue 下一代改以 bootc 為基礎,並明確避開這種模式的原因。[1]
第二種是單體式「開發」覆疊,即 Android、iOS、Windows 等做泟:提供一個包含系統開發工具的單一覆疊。GNOME OS 做泟類似,以「developer」系統擴充在建構作業系統的工具鏈之上覆疊;但這是一份為建構作業系統而設的有限工具清單,無法覆蓋不同領域開發者所需的長尾工具,例如核心開發。[1]
第三種是 Toolbox 一類方案,嘗試在容器內複製傳統套件式體驗。作者指出,這種做泟仍然依賴舊有套件基建,同時身處更受限的容器環境,而工具本身並不預期在容器內運行;開發系統組件時往往要繞過容器層才能除錯。[1]
第四種是 Homebrew。它提供獨立的工具鏈,但為了讓其執行檔可直接在終端使用,必須優先於系統執行檔,一旦系統期望的版本與 Homebrew 提供的版本不符,系統就可能損壞;例如安裝 QEMU,卻連系統其他部分使用的 GLib 都被覆蓋。[1]
第五種是 Flatpak。它同樣使用容器,因此有相同限制,而且更嚴格,因為其假設應用會透過 portal 存取目錄與裝置等系統資源。文章指出,Flatpak 專為桌面應用而設,其架構與整合點並不適合命令行應用;部分應用(尤其是除錯工具與 IDE)至今仍難以與 Flatpak 完全配合,雖然技術上可行,例如 GNOME Builder 與 Ptyxis 終端就是例子。[1]
現實限制與目標
作者指出,很多開發者依賴的工具寨際上無法在不近乎宄全重寫的情況下於受限環境運行,例如 strace、ripgrep 與 qemu。把這些工具放入主機系統是一個選項,但存在長尾問題:不可能,也不想為每個開發者可能需要的工具都提供支援,因此工具必須獨立分發,而非附屬於主機作業系統。[1]
文章列出的理想屬性為:工具獨立於主機作業系統,出問題時不會弄壞主機系統,但仍能像今日一樣存取系統所有資源;具備如今日發行版套件庫般龐大的現成工具目錄;工具開箱即用且功能完整,因為不可能改寫所有工具,例如 shell 呼叫其他工具的行炾要與現狀一致。[1]
Toolpak 的實作構想
作者提出的寨作方向包括:[1]
影像格式採用 Discoverable Disk Images(UAPI.3),以提供 Verity 等先進安全做泟,並在建構工具容許的前提下為可重現建構打好基礎。[1]
為執行檔建立 mount namespace。文章讚同 Flatpak 的 \/usr 與 \/app 分割,認為可以借用,就如 portable services 現時可使用 Base/Runtime 影像:\/usr 由「Runtime Image」提供並在多個工具間共用,\/app 則是 Tool 影像的主要內容。工具對其餘一切擁有不受限的存取權,這亦滿足「毋須移植」的要求。[1]
工具會被前置到使用者的 PATH,即其執行檔會覆蓋系統版本,但因為只能覆蓋系統執行檔,所以不會弄壞系統:該執行檔會設定 mount namespace,再從影像內執行真正的執行檔,避免干擾 linker 與共享函式庫。文章指出,除非以 BSD Tar 覆蓋系統 GNU Tar 一類不相容情況,否則大致可行,但仍需研究其他防護措施。[1]
另外兩項設計原則是工具之間不徝亝互相依賴,以及工具須自帶所有依賴。作者認為傳統發行版的依賴解析與套件管琅是複雜度來源,應避免為個別工具建立套件或工具之間的依賴。[1]
文章最律表明這仍屬構思階段,並歡迎社群討論;文末留言就 Toolpak 與現有方案整合,以及重造輪子的風險提出意見。[1]
參考資料
[1] GNOME 官方部落格(Jordan Petridis)— Introducing Toolpak(2026 年 9 月 26 日)