回答:
aptソースのdeb行によると、aptは以下を取得します:
Release.gpgがReleaseファイルの有効な署名であるかどうか、およびPackages.gzの内容がReleaseファイルに存在する整合性チェックサムと一致するかどうかを検証します。不一致がある場合、リポジトリ署名の整合性エラーが報告されます。
要求されたパッケージのパッケージファイル名は、以前に取得したPackages.gzの内容から決定されます。ダウンロードされ、そのコンテンツチェックサムはPackages.gzチェックサムコンテンツと一致する必要があります。一致しない場合、整合性エラーが報告されます。
最後の質問は、ミラー構造そのものではなく、ミラーリングプロセスに依存するミラー同期についてです。同期中にアーカイブの整合性を損なうことなく、一時的な場所を使用して同期することが可能です。すべてのUbuntuミラーがそれを行うかどうかはわかりません。
ジョアンは私の質問の後半に答えたので、私は自分で前半を調査しました。ルートレベルには、4つのディレクトリと1つのファイルがあります。
root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz
(私の大学レポでも、最初の2つのエントリのみがそこにありました。したがって、最後の3つはレポの機能にとって重要ではないようです。)
このファイルls-lr.gz
にはls -lr
、リポジトリのルートディレクトリで実行されたコマンドの出力が含まれています。
dists
ディレクトリには、(パッケージのリストが含まれている)のPackages.gzファイルとパッケージに署名しRelease.gpg /リリース全てを含む、メタデータのほとんどが含まれているようです。(情報を提供してくれたJoaoに感謝)
pool
ディレクトリは、実際の.debファイルが含まれています。組織は/pool/[section]/[letter]/[group]/packagename.deb
です。したがって、subversionはpython-subversionパッケージ/pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb
のグループであり、sはsubversionの最初の文字であるため、python-subversionパッケージの実際の場所はです。
projects
ディレクトリには、ミラーは、元のレポに同期されたかを詳述し、いくつかのファイルが含まれているようです。
indices
ディレクトリには、多くのファイルが含まれ、それらのほとんどは空にしてください。空でないファイルは、パッケージに追加のメタデータを提供しているようです。