如何列出已通过 apt 安装但不再位于 apt 存储库源列表中的软件

如何列出已通过 apt 安装但不再位于 apt 存储库源列表中的软件

假设apt我使用 Microsoft Edge 安装了它,并在系统中添加了源,然后在安装后我(意外地)删除了我添加的“apt / sources.list”文件。例如:

# echo 'deb [arch=amd64] https://packages.microsoft.com/repos/edge/ stable main' \
    > /etc/apt/sources.list.d/microsoft-edge.list
# apt install microsoft-edge-stable
# rm /etc/apt/sources.list.d/microsoft-edge.list

我认为执行上述命令后,我将无法再升级 Microsoft Edge。

有没有方法可以列出系统中这样的“孤立”软件?

答案1

aptitude为您提供此功能

在此处输入图片描述

突出显示该行并按回车键以查看包列表。

它将显示您从 .debs 安装的所有未在任何存储库中找到的软件包,以及任何从已删除的存储库中留下的软件包。

安德鲁·洛瑟留下了一个有用的评论,给出了使用单行版本的版本aptitude

aptitude search '?obsolete' 

如果您想要一个 GUI 应用程序,Synaptic Package Manager 具有相同的功能。选择底部的“状态”,然后查看“已安装(本地或过时)”类别。

在此处输入图片描述

答案2

虽然@OrganicMarble 的回答没问题,但经过进一步研究后,我发现(在最新版本的 Ubuntu 上)该命令:

$ pro security-status --unavailable
2775 packages installed:
     12 packages no longer available for download

Packages that are not available for download may be left over from a
previous release of Ubuntu, may have been installed directly from a
.deb file, or are from a source which has been disabled.

Packages:
dropbox fpc-laz fpc-src lazarus-project libfam0 libssl1.1 libwxgtk3.0-0v5
microsoft-edge-stable python-apt-common python3-apt veracrypt viber

For example, run:
    apt-cache policy viber
to learn more about that package.

还将列出这些包。

列出软件包的另一种方法(无需安装任何新工具,如aptitudesynaptic正如另一个答案所建议的那样)是这样的:

$ apt --installed list |  grep -i 'local\]$'
$ apt list ?obsolete

相关内容