Ubuntu/Debian:显示特定软件包的可用版本列表

use*_*401 30 ubuntu packages

如何列出特定软件包的所有可用版本?

我知道

apt-get install myPackage=1.2.3 
Run Code Online (Sandbox Code Playgroud)

可以安装特定版本。与

apt-show-versions -a myPackage 
Run Code Online (Sandbox Code Playgroud)

我会得到系统已知的版本列表。

但是如何获取所有可用版本的列表。我认为使用 apt 工具是不可能的,因为它们仅限于配置的存储库。

那么有什么办法呢?一些网络存储库?Ubuntu 8.04 的推荐是什么?

小智 23

试试

apt-cache 麦迪逊 myPackage

来自手册页的引用:

它以表格格式显示包的可用版本。

  • [麦迪逊工具不再存在](https://www.quora.com/Why-is-there-an-apt-cache-command-madison)。现在我们有了 `apt-cache showpkg` 和 `apt-cache policy`。 (3认同)

小智 8

如果您想知道某些特定的 Debian/Ubuntu/ Backports版本中包含哪些软件包版本,devscripts软件包中的rmadison工具 可能是答案。例如:

$ rmadison -u debian,ubuntu,bpo mercurial | cut -d "|" -f 1-3
debian:
 mercurial | 0.9.1-1+etch1 |     etch-m68k 
 mercurial | 0.9.1-1+etch1 |     oldstable 
 mercurial |  1.0.1-5.1 |        stable 
 mercurial |    1.5.1-2 |       testing 
 mercurial |    1.5.2-1 |      unstable 
ubuntu:
 mercurial |      0.7-8 | dapper/universe 
 mercurial |    0.9.5-3 | hardy/universe 
 mercurial | 1.0.1-5.1~hardy1 | hardy-backports/universe 
 mercurial | 1.1.2-2ubuntu1 | jaunty/universe 
 mercurial |    1.3.1-1 | karmic/universe 
 mercurial |    1.4.3-1 | lucid/universe 
 mercurial |    1.5.2-1 | maverick/universe 
bpo:
 mercurial | 1.0.1-5.1~bpo40+1 | etch-backports 
 mercurial | 1.3.1-1~bpo50+2 | lenny-backports 
Run Code Online (Sandbox Code Playgroud)

无论您在系统上配置了哪些存储库,它都会显示“官方”信息。

请注意,发行版之间的版本不作为官方存储库的一部分保留。但是,您可以尝试一下最近推出的http://snapshot.debian.org服务,该服务允许根据自 2005 年左右上传到 Debian 存档的日期和版本号访问旧软件包。

您可能感兴趣的类似工具是whoha,它远远超出了 Debian 系列。它能够显示其他发行版(Arch、openSUSE、Gentoo、FreeBSD 甚至更多——目前有 14 个发行版)的可用软件版本。

希望有帮助。