如何从存储库获取可安装包的列表?

我想安装一些软件包但不得不关闭我的笔记本电脑,因为我有一些家务要做。 我确实添加了软件包的存储库,忘了安装软件包。 由于我的浏览器历史记录在关闭时清除,我无法回想起他们的名字(我的名字很糟糕)。

我想知道是否有任何方法可以使用我的存储库查询所有可用的包(即我可以下载或已下载的包)?

获取这样一个列表的命令行方式是apt-cache

apt-cache dump # short list apt-cache dumpavail # long list 

由于有许多可用的包,这将花费一些时间。

您可以通过以下命令grep Package:

 apt-cache dumpavail | grep "Package:" 

我个人查看我不记得的软件包的方法仍然是安装和运行Synaptic 安装synaptic 它具有可搜索的GUI,也可用于安装和清除给定的包。

如果它在官方存储库中,您可以通过Web搜索或浏览所有可用的包: http : //packages.ubuntu.com/

Ubuntu 12.10的所有软件包: http : //packages.ubuntu.com/quantal/allpackages

当然,如果你记得任何相关内容,你可以运行apt-get updateapt-cache search keyword来搜索包。

如果它是PPA或第三方,您最好检查repo的URL并查看列表。 例如,卡桑德拉:

http://www.apache.org/dist/cassandra/debian/dists/11x/main/binary-amd64/

http://www.apache.org/dist/cassandra/debian/pool/main/c/cassandra/

如果您运行或添加〜/ .bashrc文件:

 . /etc/bash_completion 

然后你可以使用与Bash中的命令相同的方式对包进行名称自动完成。

例如:apt-get i first_couple_of_letters_of_package

击中TAB将提出可用的选择

可以在不搞乱系统配置的情况下完成:

InRealease文件中提供了存储库的目标体系结构。

这特别有用,因为使用某些存储库管理软件,您无法对存储库进行http访问。

Rabbitmq repo的例子

 deb https://packagecloud.io/rabbitmq/rabbitmq-server/debian/ stretch main 

首先,获取InRelease文件:

 wget https://packagecloud.io/rabbitmq/rabbitmq-server/debian/dists/stretch/InRelease 

找到所需文件(目标拱门)后,请执行以下操作:

 wget -q -O- https://packagecloud.io/rabbitmq/rabbitmq-server/debian/dists/stretch/main/binary-amd64/Packages | grep -E 'Package|Version'