最近 「Rebuilderd」の発売が発表されました として位置付けられています バイナリパッケージの独立した検証システム その ディストリビューションのパッケージの検証を整理することができます ダウンロード可能なパッケージをローカルシステムでの再構築の結果として受け取ったパッケージと比較する実行中のビルドプロセスを実装する。
言い換えれば、 このシステムは、パケットインデックスのステータスを監視するサービスを提供します 参照環境で新しいパッケージの再構築を自動的に開始します。 その状態は環境設定と同期しています ArchLinuxメインビルドパッケージ。
再度コンパイルするとき、 依存関係の正確な対応などのニュアンスが考慮されます、コンポジションの使用とビルドツールの変更されていないバージョン、同じオプションセットとデフォルト設定、およびファイルアセンブリの順序の保持(同じ並べ替え方法を使用)。
ビルドプロセスの設定により、コンパイラは、ランダムな値、ファイルパスへのリンク、コンパイルの日時に関するデータなど、一貫性のない概要情報を追加できなくなります。
Rebuilderdについて
現在、ArchLinuxパッケージのチェックには実験的なサポートのみが利用可能です 再構築された、 ただし、Debianサポートをまもなく追加する予定です。
現在のところ、 パッケージの84.1%に繰り返し可能なビルドが提供されています メインのArchLinuxリポジトリから、彼はエクストラリポジトリから83.8%、コミュニティリポジトリから76.9%です。 比較のために、Debian 10ではこの数値は94,1%です。
一方、ビルドはセキュリティの重要な部分です。 すべてのユーザーに確実にする機会を与える 配布パッケージによって提供されるバイト単位のパッケージが、ソースから個人的にコンパイルされたものと一致すること。
コンパイルされたバイナリのIDを検証する機能がないと、ユーザーは他の誰かのビルドインフラストラクチャを盲目的に信頼することしかできず、隠れたマーカーの置換につながる可能性のあるコンパイラまたはコンパイルツールが危険にさらされます。
インストールと実行
最も単純なケースでは、rebuilderdを実行するには、通常のリポジトリからrebuilderdパッケージをインストールし、GPGキーをインポートして環境を確認し、対応するシステムサービスをアクティブ化するだけで十分です。 複数の再構築されたインスタンスのネットワークを実装することが可能です。
インストールするには、 ターミナルを開く必要があり、その中に入力します 次のコマンド:
sudo pacman -S rebuilderd
これをやった、 ここで、GPGキーをインポートする必要があります。 RebuilderdはArchLinuxブートイメージを確認する必要があります。これをターミナルで行うには、次のコマンドを入力する必要があります。
gpg --auto-key-locate nodefault,wkd --locate-keys pierre@archlinux.de
この後 なぜなら、ユーザーをRebuilderdグループに追加する必要があるからです。 エラーが発生する場合があります。
usermod -aG rebuilderd $USER
現在 Rebuilderdがすでに実行されていることを確認するだけです システムについては、次のように入力するだけです。
rebuildctl status
また、ネットワーク上で結果を共有する場合は、次のように入力する必要があります。
systemctl enable –now再構築者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ライセンスの下で配布されていることを知っている必要があり、そのすべての詳細とコードを確認できます 次のリンクで。