2 つの異なるリポジトリにあるすべてのパッケージのバージョンを表示して比較したいと思います。次のようになります。
libfoo | 1.2 | 1.3 libbar | 2.4 | 3.0 libbaz | ... | ...
そのようなウェブはありますか?
または、リポジトリ内のすべてのパッケージ バージョンのリストを取得して、スクリプトで比較する方法はありますか?
使用例は、システムのアップグレード後にどのバージョンが変更されるかを知ることができるようにすることです。
答え1
ツールを使用するマディソン異なるディストリビューション(そして異なるリポジトリ)における1つのパッケージのバージョン情報
sudo apt-get install devscripts
rmadison [the package name]
例えば、
$ rmadison alsa-utils
出力は[パッケージ バージョン ディストリビューション アーキテクチャ]のようになります。
alsa-utils | 1.0.25-1ubuntu5 | precise | source, amd64, armel, armhf, i386, powerpc
alsa-utils | 1.0.25-1ubuntu5.2 | precise-updates | source, amd64, armel, armhf, i386, powerpc
alsa-utils | 1.0.27.2-1ubuntu2 | trusty | source, amd64, arm64, armhf, i386, powerpc, ppc64el
alsa-utils | 1.0.28-1ubuntu2 | vivid | source, amd64, arm64, armhf, i386, powerpc, ppc64el
alsa-utils | 1.0.29-0ubuntu1 | wily | source, amd64, arm64, armhf, i386, powerpc, ppc64el
または、このウェブサイトにアクセスしてリストを見ることもできます
答え2
訪問することができますUbuntuアップデート次のように:
検索条件パッケージ:
次にパッケージ検索をクリックします(以下に示すように、ページ内にさまざまなバージョンがあります):
また、バージョンに応じてパッケージ名の一致する可能性のあるものを見つけて、クリックすると詳細が表示されます。
ここでパッケージ名は例としてのみ使用されています。適切なパッケージを見つけるのに役立つことを願っています。Ubuntu リリースに応じたパッケージ名 + PPA。
答え3
2 つの異なるリポジトリの場合、ファイルを比較できますPackages
。このファイルは、リリース チャネル ( trusty
、trusty-updates
など)、コンポーネント ( main
、multiverse
など)、およびパッケージの種類 ( binary-amd64
、source
など) に固有です。
通常、ファイルは次の場所にあります。
/ubuntu/dists/$CHANNEL/$COMPONENT/binary-$ARCH/Packages{,.gz,.bz2,.xz}
ほとんどの公式ミラーのルートを基準とします。
例えばhttp://mirror.cse.iitk.ac.in/ubuntu/dists/precise/main/binary-amd64/Packages.gz
Packages
関心のあるファイルを取得し(必要に応じて解凍し)、grep
およびPackage
でVersion
出力を比較することができます。
サンプルコード:
curl -s http://mirror.cse.iitk.ac.in/ubuntu/dists/trusty/main/binary-amd64/Packages.gz | gunzip | grep -E '^(Package|Version)' | awk 'ORS=NR%2?FS:RS {print $2}' > repo-a.txt
curl -s ftp://ftp.iitb.ac.in/distributions/ubuntu/archives/dists/trusty/main/binary-amd64/Packages.gz | gunzip | grep -E '^(Package|Version)' | awk 'ORS=NR%2?FS:RS {print $2}' > repo-b.txt
diff repo-a.txt repo-b.txt