[ad_1]
本文解释了如何列出 Ubuntu、Linux Mint 或 Debian 存储库(已安装并可供安装)中可用的所有软件包,无论是官方存储库还是 PPA 等第三方源等等。
您将在下面找到从存储库列出包的两种方法:使用 GUI 或从命令行。
来自同一系列:
- 如何在 Ubuntu、Debian 或 Linux Mint 中防止更新包 [APT]
- 如何在 Debian、Ubuntu 或 Linux Mint 中从命令行搜索可用软件包 [APT]
使用 GUI 列出 Debian、Ubuntu 或 Linux Mint 存储库中的所有软件包
如果要在桌面上列出存储库中的所有包,可以使用 Synaptic 包管理器。
Synaptic 是 APT 的图形包管理应用程序(APT 是 Debian 及其衍生产品的主要命令行包管理器)。
如果您没有安装 Synaptic,您可以使用以下命令将其安装在 Debian、Ubuntu 以及任何基于 Debian 或 Ubuntu 的 Linux 发行版上,包括elementary OS、Linux Mint 等:
sudo apt install synaptic
要使用 Synaptic 列出特定软件存储库中的所有软件包,请启动应用程序并单击 Origin
在其窗口的左下角。 接下来,选择要列出所有可用包的存储库
(已安装且可安装)
从显示在 Synaptic 包管理器左侧的列表中。
例如,这里的 Synaptic 显示了谷歌存储库中所有可用的包,列出了谷歌 Chrome 稳定版, beta 和不稳定的,还有谷歌地球专业版和EC:
如您所见,此处列出了所有软件源,包括官方存储库。
还支持 Launchpad PPA 存储库。 它们的名称以 LP-PPA 开头,后跟实际的 PPA 名称。 Synaptic 为每个 PPA 列出 2 个条目 – 确保选择以结尾的 PPA 条目/ubuntu-codename
, 例如/bionic
,/cosmic
等。/now
没有列出 PPA 中的所有可用包。
这是一个屏幕截图,显示了 Ubuntu 图形驱动程序 PPA(适用于 Ubuntu 18.10 Cosmic Cuttlefish,因为这是我正在使用的)中可用的所有软件包,包括显示在我的系统上安装了哪些软件包:
我不知道为什么,但一些包被多次列出用于 PPA 源(并且仅用于 PPA 存储库)。 那只是一个显示的东西,它不会破坏任何功能。
从命令行列出 Ubuntu、Debian 或 Linux Mint 存储库中的所有包
在 Ubuntu、Debian 或 Linux Mint 的命令行中列出存储库中的所有包有点棘手,但仍然很容易做到。
从命令中有多种方法可以做到这一点,但我只列出一种。
列出所有可用包的命令 repository-name
是下面的那个:
grep ^Package /var/lib/apt/lists/repository-name*_Packages | awk '{print $2}' | sort -u
稍后我将解释如何从/var/list/apt/lists
以及如何使用它。 在此之前,我将解释此命令的作用:
grep ^Package ...
搜索以开头的行^Package
在里面/var/lib/apt/lists/*_Packages
文件awk '{print $2}'
打印每一行的第二列(因此它会过滤掉除包名之外的所有内容)sort -u
对行进行排序并仅输出唯一行(删除重复项)
您需要做的第一件事是找到存储库的名称*_Packages
文件来自/var/lib/apt/lists/
. 您可以列出所有存储库_Packages
可用的文件/var/lib/apt/lists/
通过使用一个简单的ls
:
ls /var/lib/apt/lists/*_Packages
由于结果可能很长,可以通过运行命令输出more
为了更容易阅读:
ls /var/lib/apt/lists/*_Packages | more
如果您知道存储库名称的一部分(我正在使用KEYWORD
在下面的命令中作为名称),您可以过滤ls
结果使用grep
, 像这样:
ls /var/lib/apt/lists/*_Packages | grep KEYWORD
例如,假设您想列出官方 Tor 存储库中的所有包,并且您知道存储库名称必须包含tor
. 在这种情况下,您将使用此命令找出_Packages
文件名来自/var/lib/apt/lists/
ls /var/lib/apt/lists/*_Packages | grep tor
对于简短的查询,可能会显示一些不相关的存储库,但使用它仍然更容易查看您要查找的内容grep
而不是列出所有存储库_Packages
文件。
既然你知道_Packages
文件名,您可以通过发出以下命令列出该存储库中可用的所有包:
grep ^Package /var/lib/apt/lists/some-repository-amd64_Packages | awk '{print $2}' | sort -u
使用包含要列出该存储库中所有可用包的体系结构的文件。 上面的示例是针对 64 位 (amd64
),但你可以使用i386
对于 32 位等。
您不需要完整的存储库_Packages
文件名。 回到我的 Tor 存储库示例,_Packages
Tor 的文件名是deb.torproject.org_torproject.org_dists_cosmic_main_binary-amd64_Packages
. 在这种情况下,您可以使用deb.torproject
其次是*_Packages
为了简化事情,像这样:
grep ^Package /var/lib/apt/lists/deb.torproject*_Packages | awk '{print $2}' | sort -u
输出以下内容:
deb.torproject.org-keyring
tor
tor-geoipdb
另一个例子。 假设您想查看 Linux Uprising Oracle Java 11 PPA 中所有可用的包(ppa:linuxuprising/java
)。 您可以使用以下方法列出它们:
grep ^Package /var/lib/apt/lists/ppa.launchpad.net_linuxuprising_java*_Packages | awk '{print $2}' | sort -u
哪个输出:
oracle-java11-installer
oracle-java11-set-default
要将其与其他 PPA 存储库一起使用,请替换linuxuprising
带有 PPA 名称的第一部分,以及java
使用 PPA 名称的第二部分,该命令将列出该 PPA 中的所有包(已安装和未安装)。
您还可以使用以下命令列出您在系统上添加的所有 PPA 存储库中可用的所有包:
grep ^Package /var/lib/apt/lists/ppa.launchpad.net*_Packages | awk '{print $2}' | sort -u
为了方便访问,您可以使用 Marker commands 书签管理器为该命令添加书签(虽然主要用于搜索,但 HSTR 也可以为命令添加书签)。
[ad_2]