mksh
再現可能な方法でパッケージを構築できることを確認したいと思います。頑張っています
apt build-dep mksh
apt source mksh
cd mksh; dpkg-buildpackage -uc -us
cd ..; sha256sum <freshly build dep>
私が今これをするなら
apt download mksh
ダウンロードしたdebのチェックサムをローカルで作成したDebianパッケージと比較すると、チェックサムが異なります(debに署名しなかったと予想)
これらのチェックサムを一致させるにはどうすればよいですか?
答え1
ソースmksh
パッケージは再現可能にビルド可能です。.deb
つまり、ビルド環境を再現できる場合は、特定のパッケージを再生成できることを意味します。この情報は保存されました.buildinfo
ファイルにとDebian スナップショット、与えられたを構築するために使用するために検索することができます.deb
。
今、.buildinfo
Debian リポジトリのバイナリパッケージとともにファイルはリリースされません。、しかし彼らは出版されました存在するbuildinfos.debian.net、.buildinfo
現在Debian 11バージョンのファイルが含まれています(mksh
例えば amd64
バージョン)。これにより、mksh
特定のバイナリパッケージのビルド環境が何であるかを確認し、それを再現できます。
ここにはもう一つの微妙さがあります。mksh
Debian 11の現在のパッケージはbinNMUですが、ソースコードはそうではありません。正確に公開されたパッケージソースと一致します。既存のバイナリパッケージを再現するには、追加のbinNMU changelog
(例えば changelog.Debian.amd64.gz
amd64
パッケージ)には同じ内容があります。
mksh (59c-9+b2) sid; urgency=low, binary-only=yes
* Binary-only non-maintainer upload for amd64; no source changes.
* Rebuild for outdated Built-Using
-- amd64 / i386 Build Daemon (x86-ubc-01) <[email protected]> Thu, 05 Aug 2021 11:52:19 +0000
あなたができる特定のビルド環境を再現すると、生成された.deb
ファイルはまったく同じでなければなりません。 Debian に配布されたバイナリパッケージは自己署名されません。これを説明するメタデータは次のとおりです。。
答え2
あなたはできません。基本データが異なるため、計算されたチェックサムも異なります。同じチェックサムを持つ2つの値を見つけるのは難しい問題です。