如何在 Ubuntu、Debian 或 Linux Mint 上列出存储库中的所有软件包 [APT]

[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]

Related Posts