在Ubuntu 26.04中,除了apt,还有snap、aptitude和dpkg等软件包管理工具,它们共同构成了系统的软件生态。它们最核心的区别在于定位层级和设计哲学的不同:
dpkg是最底层的工具,直接操作.deb软件包,但不会处理依赖关系。
apt和aptitude是基于dpkg的上层工具,会自动处理依赖关系,是日常管理.deb包的主力。其中aptitude在解决复杂依赖冲突时更强大。
snap是一种全新的、容器化的软件分发方式,与传统的.deb包体系相对独立。由于每个应用都自带依赖,会占用更多的磁盘空间。
我们可以通过which或者type查看可执行文件路径实际位置,这是最直观的方法。
如果知道软件包的大致名称,也可以直接在各自的列表里搜索。
查询是否属于snap:
查询是否属于apt:
apt list --installed | grep 软件名
查询是否属于dpkg:
在Ubuntu 26.04中,系统默认可能同时安装了两个版本。可以使用snap list和apt list同时查到同一个软件。
此时,终端输入命令时调用的优先级取决于PATH环境变量的顺序。通常/snap/bin的优先级高于/usr/bin,因此默认会运行snap版。如果想强制运行apt版,可以使用完整路径,例如/usr/bin/firefox。