最近 宣布推出“ Rebuilderd” 定位為 獨立的二進制軟件包驗證系統 這 允許組織對分發包的驗證 通過實施一個正在運行的構建過程,該過程將可下載軟件包與由於在本地系統上重建而收到的軟件包進行比較。
換句話說, 該系統提供監視包索引狀態的服務 並自動開始在參考環境中重建新軟件包, 其狀態與環境設置同步的 Arch Linux主構建包。
再次編譯時, 考慮到細微差別,例如依賴項的確切對應關係,使用未更改的版本和版本的生成工具,使用相同的選項和默認設置以及保留文件彙編順序(使用相同的排序方法)。
生成過程設置會阻止編譯器添加不一致的概述信息,例如隨機值,指向文件路徑的鏈接以及有關編譯日期和時間的數據。
關於重建
目前只有實驗性支持可用於檢查Arch Linux軟件包 與重建, 但計劃很快添加Debian支持。
目前, 為84.1%的軟件包提供了可重複的版本 在Arch Linux主存儲庫中,他佔Extras存儲庫的83.8%,在社區存儲庫中佔76.9%。 相比之下,在Debian 10中這個數字是94,1%。
鑑於構建是安全性的重要組成部分,因為它們 給任何用戶確保的機會 分發軟件包提供的逐字節軟件包與從源頭親自編譯的軟件包相匹配。
由於無法驗證已編譯二進製文件的身份,用戶只能盲目地信任他人的構建基礎結構,從而損害了編譯器或編譯工具,從而導致隱藏標記的替換。
安裝與執行
在最簡單的情況下,要運行rebuilderd,只需從常規存儲庫中安裝rebuilderd軟件包,導入GPG密鑰以驗證環境並激活相應的系統服務就足夠了。 可以實現多個重建實例的網絡。
安裝, 我們必須打開一個終端,然後在其中鍵入 以下命令:
sudo pacman -S rebuilderd
做完了 現在我們必須導入GPG密鑰,因為 Rebuilderd必須驗證Arch Linux啟動映像,為此在終端中,我們將必須鍵入以下命令:
gpg --auto-key-locate nodefault,wkd --locate-keys pierre@archlinux.de
在這之後 我們必須將用戶添加到Rebuilderd組,因為 我們可能會收到一個錯誤:
usermod -aG rebuilderd $USER
現在 我們只需要驗證Rebuilderd已經在運行 關於系統,為此,我們只需要輸入:
rebuildctl status
如果要在網絡上共享結果,則必須輸入:
systemctl enable –現在rebuilderd rebuilderd-worker @ alpha
現在,重要的是要考慮到Rebuilderd在從系統包同步的位置明確指定之前不會生效,為此,我們必須修改配置了同步配置文件的/etc/rebuilderd-sync.conf文件。並且配置文件名稱是唯一的:
下面是一個示例:
## rebuild all of core
[profile."archlinux-core"]
distro = "archlinux"
suite = "core"
architecture = "x86_64"
source = "https://ftp.halifax.rwth-aachen.de/archlinux/core/os/x86_64/core.db"
## rebuild community packages of specific maintainers
#[profile."archlinux-community"]
#distro = "archlinux"
#suite = "community"
#architecture = "x86_64"
#source = "https://ftp.halifax.rwth-aachen.de/archlinux/community/os/x86_64/community.db"
#maintainer = ["somebody"]
修改文件後,只需啟用計時器即可自動同步配置文件:
systemctl enable --now rebuilderd-sync@archlinux-core.timer
終於 如果您想了解更多有關Rebuilderd的信息,他們應該知道它是用Rust編寫的,並根據GPLv3許可進行分發,您可以檢查其所有詳細信息和代碼 在下面的鏈接中。