如何识别Ubuntu 16.04 LTS Unity中的Snap、Flatpak及原生应用并选择卸载版本
识别Ubuntu 16.04 Unity中Snap/Flatpak/原生应用并清理重复安装
我完全懂你的困扰——在Ubuntu 16.04 Unity里混装不同包格式的应用,确实容易搞混重复安装的版本。下面给你几个实用的方法,帮你快速识别并清理冗余应用:
一、终端命令快速区分应用类型
终端是最直接的工具,几个命令就能列出所有对应格式的应用:
- 查看所有Snap应用:
输出会包含应用名称、版本、发布者等信息,一眼就能确认哪些是Snap安装的。snap list - 查看所有Flatpak应用:
这里会显示Flatpak应用的完整ID、版本和安装来源,方便后续卸载。flatpak list - 查找原生Deb包安装的应用:
如果你想确认某个特定应用是否是原生Deb包,可以用:
比如要检查Firefox,就输入dpkg -l | grep 应用名称dpkg -l | grep firefox,有输出就说明是Deb包安装的。
二、图形界面识别技巧(适配Unity环境)
Unity的Dash和默认软件中心确实不显示应用包类型,但可以通过以下小方法判断:
- 查看启动器命令属性:
右键Dash中找到的应用图标,选择「属性」,查看「命令」字段:- 如果命令以
snap run开头,就是Snap版本; - 如果以
flatpak run开头,就是Flatpak版本; - 直接是应用名称(比如
firefox)的,基本是原生Deb包。
- 如果命令以
- 用菜单编辑器查看详情:
安装alacarte(Unity默认可能已安装,没装的话用sudo apt install alacarte),打开后找到对应应用,查看其命令行,同样能通过开头的关键词判断包类型。
三、卸载冗余版本的建议
理清应用类型后,你可以根据需求选择保留哪个版本:
- 追求系统稳定性和适配性:优先保留原生Deb包,它和Ubuntu 16.04 LTS的兼容性最好;
- 想要最新功能和版本:可以保留Snap/Flatpak版本,它们更新更独立,不受系统源限制。
卸载命令对应如下:
- 卸载Snap应用:
sudo snap remove 应用名称 - 卸载Flatpak应用:
(应用ID可以从flatpak uninstall 应用IDflatpak list的输出中复制) - 卸载原生Deb应用:
sudo apt remove 应用名称
额外小技巧
用which 应用名称命令查看应用的执行路径,也能辅助判断:
- Snap应用路径通常在
/snap/bin/下; - Flatpak应用路径在
/var/lib/flatpak/exports/bin/或~/.local/share/flatpak/exports/bin/; - 原生Deb应用路径多在
/usr/bin/下。
内容的提问来源于stack exchange,提问作者Bunjip




