Distri - 用於測試快速套件管理技術的發行版

Michael Stapelberg,i3wm 平鋪視窗管理器的作者和前活躍 Debian 開發人員(維護了大約 170 個軟體包), 發展 實驗分佈 分配 和同名的套件管理器。該專案的定位是探索提高套件管理系統效能的可能方法,並體現了建構發行版的一些新想法。套件管理器程式碼是用 Go 編寫的 分發者 在 BSD 許可證下。

此發行版包格式的一個關鍵特徵是該包以 SquashFS 映像的形式提供,而不是壓縮的 tar 檔案。使用 SquashFS,類似於 AppImage 和 Snap 格式,允許您「掛載」套件而無需解壓縮它,這可以節省磁碟空間,允許原子更改,並使套件的內容可以立即存取。同時,distri 套件與經典的「deb」格式一樣,僅包含透過依賴項與其他套件連結的單一元件(庫不會在套件中重複,而是作為依賴項安裝)。換句話說,發行版試圖將 Debian 等經典發行版的粒度包結構與以掛載容器的形式交付應用程式的方法結合起來。

distri中的每個套件都以唯讀模式掛載到自己的目錄中(例如,帶有zsh的套件為“/ro/zsh-amd64-5.6.2-3”),這對安全性和安全性有正面的影響。防止意外或惡意變更。為了形成服務目錄的層次結構,例如 /usr/bin、/usr/share 和 /usr/lib,使用了一個特殊的 FUSE 模組,它將所有已安裝的 SquashFS 映像的內容組合成一個整體(例如 / ro /share 目錄提供對所有套件中共用子目錄的存取。

套餐 從根本上來說 發表 來自安裝期間呼叫的處理程序(無鉤子或觸發器),並且套件的不同版本可以彼此共存,因此套件的並行安裝成為可能。所提出的結構將套件管理器的效能僅限制為下載包的網路吞吐量。套件的實際安裝或更新是以原子方式執行的,不需要重複內容。

安裝軟體包時的衝突被消除,因為每個軟體包都與其自己的目錄相關聯,並且系統允許一個軟體包存在不同版本(具有該軟體包更新版本的目錄內容包含在聯合目錄中)。建置套件也非常快,不需要在單獨的建置環境中安裝套件(在建置環境中建立 /ro 目錄中的必要依賴項的表示)。

支持的 典型的軟體包管理命令,例如“distri install”和“distri update”,您可以使用標準的“ls”實用程式來代替資訊命令(例如,要查看已安裝的軟體包,只需顯示以下目錄的列表即可) “/ro”層次結構,並且為了找出該文件包含在哪個包中,請查看該文件的連結指向的位置)。

建議用於實驗的原型分發套件包括大約 1700包 並準備好 安裝圖片 附有安裝程序,既適合作為主作業系統安裝,也適合在 QEMU、Docker、Google Cloud 和 VirtualBox 中運行。它支援從加密的磁碟分割啟動,並支援一組標準應用程序,用於建立基於 i3 視窗管理器的桌面(Google Chrome 作為瀏覽器提供)。 假如 一個完整的工具包,用於組裝發行版、準備和生成包、透過鏡像分發包等。

來源: opennet.ru

添加評論