Jazz Len says to Ubuntu 台灣社群
為什麼 Flatpak 應用程式 在 Linux 上 佔用這麼多磁碟空間 (★ 34 分) 文章原始內文因安全驗證要求而無法直接存取,但標題「Why Flatpak Apps Use So Much Disk Space on Linux」暗示其主要論點在於 Flatpak 為了達成跨發行版、沙盒隔離與依賴自治,必須將應用程式所需的所有函式庫與執行環境打包進去。這包括不同版本的執行時(runtime)與共用庫,每個 Flatpak 都維護自己獨立的物件儲存,導致磁碟重複佔用。此外,透過分層(layered)儲存和物件去重(deduplication),雖然能在檔案層級減少些許重複,但最終仍因各版本執行時不能完全共用而產生大量殘留資料。 在 Hacker News 討論中,不少使用者指出 Windows 可執行檔較能利用作業系統提供的穩定 API 與系統 DLL,使「可攜式應用程式」(portable apps)與安裝版大小相近;Linux 桌面環境則缺乏統一且向後相容的使用者空間 ABI(Application Binary Interface,應用程式二進位介面),因此 Flatpak 必須自帶 GNOME、KDE 等桌面函式庫及 D-Bus 中介層。相比之下,AppImage 假設部分共用依賴已在系統上存在,體積通常較小;Snap 則連物件去重都不做,佔用更兇。 另一波討論聚焦 Flatpak 的桌面特性:它仰賴 xdg-desktop-portal 與信任檔案對話框(powerbox)來存取使用者檔案,導致無法在純 CLI 或無螢幕環境(如 SSH、framebuffer console)下正常運作,也不適合伺服器用途。有人建議若要節省儲存,應盡量選擇使用相同版本的 Freedesktop、GNOME 或 KDE 執行時,並定期清理舊版執行時與物件。 社群中還有人批評這類封裝格式對使用者電腦資源不夠友善,隨著應用程式與執行時數量增加,更新下載與安裝時間激增,甚至出現多個版本的同一個二進位檔(例如 sudo)同時存在、各自等待安全性修補的窘境。儘管「儲存便宜」是一句常見訴求,但當系統與人力成本因更新延宕而大幅提高時,這種設計反而傷害使用體驗。 更廣泛的觀點則認為,Linux 在桌面部署上始終無法統一標準,導致應用程式開發者、發行版維護者與最終使用者三方都苦不堪言。討論中甚至有人以任天堂 Switch 的 Horizon 作例,指出若能打造一套專注必要元件、支援快速更新且保有沙盒機制的精簡作業系統,或許能為桌面生態帶來新思維;不過由於硬體支援、開源生態與用戶需求多元,短期內要實現類似方案仍有相當挑戰。 👥 40 則討論、評論 💬 https://news.ycombinator.com/item?id=43887073