我如何知道所有软件包在给定的存储库中?

一位朋友问我一个Ubuntu问题,我没有一个快速的一次性答案,所以我把它提交给SF:我如何列出给定的apt库中可用的所有包? 例如Canonical合作伙伴的所有软件包回购。

下载Packages文件并通过如下方式pipe理它们:

 bzcat Packages.bz2 |  egrep'^($ |包:| Version :)'

或者,如果简单的grep不够好,请使用grep-dctrl从下载的Packages文件中提取所需的信息。

这是一个丑陋的解决scheme,但它的优点是它允许你使用你最喜欢的工具(aptitude,Synaptic等)来浏览版本库:

  • 备份/etc/apt/sources.list;
  • 编辑原始的sources.list,并注释掉除了你想要浏览的所有的仓库;
  • 运行你的工具的更新function并浏览;
  • 完成后,将您的sources.list.backup复制到修改过的原始文件上,然后重新运行您的工具的更新function。