Flatpak
Flatpak 將如何防止過時庫的擴散?
在目前的包系統(RPM 或 Deb)中,每個庫和程序通常只安裝一個主要版本。所有庫都應該使用Semantic Versioning,因此可以輕鬆安裝新的次要版本而不會破壞任何內容。如果存在安全問題,則該庫已修復,並且所有相關程式碼都直接受益於該更新檔。
現在有了 Flatpak,我看到人們只會捆綁所有東西,也許是因為他們稍微修改了上游庫。如果有安全更新,所有上游開發者都需要更新庫。即使有“執行時”概念,應用程序仍然可能依賴於過時版本的庫。
對我來說,依賴地獄僅僅來自於 API 穩定性規則的缺乏。如果這些庫能夠適當地保持其 API 穩定或發布新的主要版本,那一切都會好起來的。在 Ruby 和 Python 世界中,我經常看到有帶有確切版本號的需求列表。所有這些都安裝到虛擬環境中,一旦部署軟體就永遠不會更新。
Flatpak 將如何防止存在安全問題的圖書館便利副本的氾濫?
至少對於 OpenSSL 等基本庫來說,它們具有執行時的概念。這些是例如 GNOME、KDE 等。這些可以升級,即使 flatpak 本身是使用早期版本的執行時建構的。
但是,除此之外,還需要維護 flatpak 中的其他庫。顯然這裡應用程序的作者應該維護它,否則主應用程序可能也沒有維護,所以你可能對主應用程序也有這個問題。