Skip to content
TopicTracker
出典 HackerNews原文を表示
翻訳言語翻訳言語

パッケージを再帰的に差分比較する

diffoscopeは、アーカイブ、圧縮ファイル、Gitリポジトリ、ISOイメージ、PDFなどのさまざまな形式を再帰的に展開・比較することで、ファイルやパッケージの詳細な差分を生成するオープンソースのツールです。パッケージの再現可能ビルドの検証や、バイナリファイルの差異の解析に広く利用されています。

背景メモ

- **diffoscope** は、Debian プロジェクトが開発・保守するオープンソースツール。2つのファイル(アーカイブ、Debianパッケージ、Dockerイメージ、PDF、ファイルシステムイメージなど)を渡すと、中身を再帰的に展開・比較し、どのバイトが違うかを詳細な「差分レポート」として出力する。 - **何ができるか**: ZIP や tar などのアーカイブ、Debian の .deb パッケージ、Rust の .crate、ISO イメージ、VM ディスクイメージ、PDF、Elf バイナリなど多種多様な形式に対応。中に圧縮やネストされた構造があっても自動的に展開して比較する。 - **なぜ重要か**: ソフトウェアの「再現可能ビルド(Reproducible Builds)」の検証に不可欠。同じソースコードからビルドしたはずのバイナリが完全に一致するか確認するときに、表面的なタイムスタンプやメタデータの違いと、実際のコードの違いを区別できる。 - **Debian / Reproducible Builds との関係**: diffoscope は Reproducible Builds プロジェクトの中核ツールの一つ。同プロジェクトは、誰でも同じソースから全く同一のバイナリを再現できるようにすることを目指しており、diffoscope はその検証役として世界中のディストリビューションで使われている。

関連記事