我想查看並比較兩個不同存儲庫中所有軟體包的版本。就像是:
libfoo | 1.2 | 1.2 1.3 libbar | 2.4 | 2.4 3.0 libbaz | 3.0 .... | …
有這樣的網站嗎?
或者一種獲取存儲庫中所有軟體包版本列表的方法,以便我可以通過腳本進行比較?
用例是能夠知道系統升級後會更改哪些版本。
答案1
使用工具雷麥迪遜對於不同發行版(然後是不同存儲庫)中的一個軟體包版本信息
sudo apt-get install devscripts
rmadison [the package name]
例如,
$ rmadison alsa-utils
輸出看起來像 [package version distro arch]:
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
答案3
對於兩個不同的儲存庫,您可以比較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
forPackage
和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