假设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.
还将列出这些包。
列出软件包的另一种方法(无需安装任何新工具,如aptitude
或synaptic
正如另一个答案所建议的那样)是这样的:
$ apt --installed list | grep -i 'local\]$'
$ apt list ?obsolete