質問: 2つのリポジトリ間で重複を表示する方法 ローカルで2つのリポジトリを取得しました。 1つはsqueezeのコピーで、もう1つはカスタムのもので、repreproによって管理されます。 2つの間で重複するパッケージのリストを生成する既製のツールはありますか?
回答: 愚かな私、私はこれをはるかに速く簡単にするスクリプトに座ってきました:#!/usr/bin/python3 import os import gzip import apt_pkg repo1 = "~/.repo_local/dists/cache/main/binary-i386/packages.gz" repo1 = os.path.expanduser(repo1) repo1 = apt_pkg.tagfile(gzip.open(repo1, "rb")) repo1 = dict([(pkg["package"], pkg["version"]) for pkg in repo1]) repo2 = "~/.repo_bin/dists/squeeze/main/binary-i386/packages.gz" repo2 = os.path.expanduser(repo2) repo2 = apt_pkg.tagfile(gzip.open(repo2, "rb")) repo2 = dict([(pkg["package"], pkg["version"]) for pkg in repo2]) apt_pkg.init_system() found = false for pkg in repo1: if pkg in repo2: vc = apt_pkg.version_compare(repo1[pkg], repo2[pkg]) if vc == 0: print("{:<30}{:<30}({})".format(repo1[pkg], repo2[pkg], pkg)) found = true if found: print("=" * 90) print("{:<30}{:<30}({})".format("custom", "official", "package name")) else: print("nothing matching search criteria found")