有没有办法查看某个应用程序是通过 Snap、PPA、下载的 deb 还是标准存储库安装的?
目前,我在 Focal 20.04 笔记本电脑上安装了 Zoom。我想弄清楚我最初是如何安装它的,但我经常遇到这个问题。要么它是一个专有应用程序(例如 Slack 或 Dropbox),我想更新它,要么应用程序提醒我有更新版本可用(Keepass),我想仔细检查我是否从存储库安装,然后等待存储库更新即可。
如果一定要我猜的话,我可能会说我是从下载的 安装了 Zoom .deb
,但我不确定如何检查。我不认为我是从 安装了 Slack .deb
。
我尝试遵循我如何找出包来自哪个存储库?但结果不明确。例如,没有apt policy
Slack 的结果:
amanda@rajje:~$ apt policy slack
slack:
Installed: (none)
Candidate: 1:0.15.2-9
Version table:
1:0.15.2-9 500
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
500 http://us.archive.ubuntu.com/ubuntu focal/universe i386 Packages
大概是因为我是从 Ubuntu 软件安装的,所以它是一个 Snap:
如果我尝试apt policy
安装一个我知道自己没有使用过的应用程序,我会看到一个存储库列表。我可以假设这意味着我确实从存储库安装了应用程序吗?
amanda@rajje:~$ apt policy emacs
emacs:
Installed: 1:26.3+1-1ubuntu2
Candidate: 1:26.3+1-1ubuntu2
Version table:
*** 1:26.3+1-1ubuntu2 500
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
500 http://us.archive.ubuntu.com/ubuntu focal/universe i386 Packages
100 /var/lib/dpkg/status
如果没有显示存储库,是否意味着我是从包下载中安装的?
amanda@rajje:~$ apt policy zoom
zoom:
Installed: 5.0.403652.0509
Candidate: 5.0.403652.0509
Version table:
*** 5.0.403652.0509 100
100 /var/lib/dpkg/status
答案1
which zoom
以或开头which zoom-client
。这将返回可执行文件的文件路径。(提示:tab完成是你的朋友)
以 开头的任何东西都是由 Snap(或 Ubuntu 软件中心)安装的,因此您可以通过打开软件中心或运行来获取完整/正确的 Snap 名称,以/snap
了解更多信息。snap list | grep -i zoom
如果以 开头,/usr/bin
则可能是使用apt
或 Synaptic 安装的。在这种情况下dpkg -l | grep -i zoom
, 或apt policy zoom*
会告诉您更多信息。查看 Synaptic 中的“已安装(本地或过时)”过滤器,查看 是apt
本地安装还是通过存储库安装。
您可能还想检查:
- Flatpak - 检查
flatpak list | grep -i zoom
- Ubuntu 制作- 检查
umake --list-installed
(例如,IDE)
答案2
安装 Synaptic 软件包管理器(您可以从 Ubuntu 软件中安装它,也可以使用 命令行安装它sudo apt install synaptic
)。它是管理软件包的绝佳工具.deb
。在主屏幕上,它会向您显示按组划分的软件包,如下面的屏幕截图所示。查看名为“已安装(本地或过时)”的组 - 这些是从手动下载的文件而不是从存储库安装的软件包(一些非常重要的系统软件包,如libc
,也包含在那里)。在我的屏幕截图中,您可以看到zoom
这些软件包。
顺便说一句。在您的 Slack 示例中,该程序安装为 snap,而不是.deb
包,这可以通过屏幕截图上数据开头的“Channel”来识别。Snap 包始终有一个通道(通常是latest/stable
),而.deb
包则没有。因此,无论是 Synapticapt
还是 Synaptic 都不知道有关该包的任何信息(事实上,在您的示例中,它向apt policy
您显示了有关未安装 slack
可以.deb
从存储库中安装包)。
答案3
这早已过了提出此问题的时间,但我很快创建了一个脚本(今天早上),以便同时在 repos 和 snap 中搜索应用程序,并使用其源代码查询已安装的应用程序。
如果有人发现它有用,这里是 git repo: