当你从开发者网站下载 Linux 软件时,它可能是 .deb 文件,而不是来自 Ubuntu 软件仓库的软件包。这些文件采用 Debian 软件包格式,可以使用 aptdpkggdebi 或图形化的 App Center 在 Ubuntu 上安装。

对于大多数本地 .deb 文件,apt 是推荐的命令行方式,因为它会在安装软件包的同时自动解决依赖关系。

安装来自非官方来源的 .deb 软件包时要格外小心。软件包在安装过程中可能会以 root 权限运行脚本,因此只应从官方项目网站或受信任的厂商处下载软件包。

本指南介绍如何在 Ubuntu 上安装 deb 文件、安装前如何检查软件包、如何解决依赖错误,以及之后如何卸载软件包。相同的命令也适用于 Debian、Linux Mint 和 elementary OS 等基于 Debian 的发行版。

快速参考

如需可打印的速查表,请参阅 aptdpkg 备忘单。

任务命令
使用 apt 安装 debsudo apt install ./package.deb
使用 gdebi 安装 debsudo gdebi package.deb
使用 dpkg 安装 debsudo dpkg -i package.deb
修复缺失的依赖sudo apt install -f
查看 deb 文件信息dpkg -I package.deb
列出 deb 文件内容dpkg -c package.deb
卸载软件包sudo apt remove package-name
连同配置文件一起卸载sudo apt purge package-name
清理未使用的依赖sudo apt autoremove

下载 deb 文件

一些应用程序会以 .deb 文件的形式分发其 Linux 软件包,你需要直接从项目网站下载。Google Chrome、Visual Studio Code 和 TeamViewer 都是常见的例子。

下面的示例使用了 TeamViewer 的 deb 文件。如果你更喜欢使用终端,可以用 wgetcurl 下载 deb 文件:

wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
curl -L -O https://download.teamviewer.com/download/linux/teamviewer_amd64.deb

安装前检查 deb 文件

在安装来自新来源的 deb 软件包之前,先检查它的元数据和内容。

要查看软件包的版本、描述和依赖关系等信息:

dpkg -I teamviewer_amd64.deb

要列出软件包将在系统上安装的所有文件:

dpkg -c teamviewer_amd64.deb

通过命令行安装 deb 文件

下面的小节介绍三种常见的命令行方式:aptgdebidpkg。除非有特殊理由,否则应优先使用 apt

使用 apt 安装 deb 文件

apt 是一个命令行工具,用于在 Ubuntu、Debian 及相关 Linux 发行版上安装、更新、卸载以及管理 deb 软件包。

使用 apt 安装本地 deb 软件包时,需要提供 deb 文件的完整路径。如果文件位于当前工作目录中,则需在软件包名称前加上 ./。否则,apt 会尝试从 Ubuntu 的软件仓库中检索并安装该软件包。

sudo apt install ./teamviewer_amd64.deb

系统会提示你输入 Y 以继续:

...
Summary:
  Upgrading: 0, Installing: 84, Removing: 0, Not Upgrading: 64
  Download size: 21.0 MB
  Space needed: 66.3 MB / 45.2 GB available

Continue? [Y/n]

这段多行摘要最早随 Ubuntu 24.10 的 apt 2.9.8 推出,并在 apt 3 中延续。Ubuntu 24.04 LTS 及更早版本使用旧的单行摘要,并提示 “Do you want to continue? [Y/n]”。

apt 软件包管理器会自动解决并安装该软件包的依赖项。

使用 gdebi 安装 deb 文件

gdebi 是一个用于安装本地 deb 软件包及其依赖项的小工具。Ubuntu 默认未安装它。gdebi-core 软件包提供命令行版本,而 gdebi 软件包则额外提供图形前端及其 GTK 依赖:

sudo apt install gdebi-core

要使用 gdebi 安装 deb 软件包:

sudo gdebi teamviewer_amd64.deb
...
Do you want to install the software package? [y/N]:

在提示时输入 ygdebi 就会解决并安装该 deb 软件包及其所有依赖项。

使用 dpkg 安装 deb 文件

dpkg 是基于 Debian 系统的底层软件包管理器。使用 -i(或 --install)选项配合 dpkg 安装 deb 软件包:

sudo dpkg -i teamviewer_amd64.deb

aptgdebi 不同,dpkg 不会解决依赖关系。如果在安装 deb 软件包时遇到依赖错误,请运行以下 apt 命令来安装缺失的依赖并完成软件包配置:

sudo apt install -f

卸载 deb 软件包

要卸载通过 aptdpkg 安装的软件包,请使用软件包名称(而不是 .deb 文件名):

sudo apt remove teamviewer

要连同配置文件一起卸载软件包:

sudo apt purge teamviewer

如果你是用 dpkg 安装的软件包,也可以用以下命令卸载:

sudo dpkg -r teamviewer

要在卸载软件包后清理不再需要的依赖项:

sudo apt autoremove

使用图形界面安装 deb 软件包

如果你更喜欢图形界面,可以下载 deb 文件并双击打开它。

在当前的 Ubuntu 版本中,文件会在 App Center 中打开。查看软件包详情,点击 “Install”,并在提示时输入管理员密码。在较旧的版本中,文件可能会在 Ubuntu Software 或其他图形化软件包安装器中打开。

故障排查

apt 提示 “Unable to locate package package.deb”:你很可能在文件名前漏掉了 ./。请在包含该文件的目录中运行 sudo apt install ./package.deb,或提供该文件的完整路径。

dpkg 报告依赖问题:dpkg 只安装软件包文件本身,不会获取缺失的依赖。运行 sudo apt install -f 来安装所需依赖并完成软件包配置。

App Center 无法打开 deb 文件:改用命令行。在下载目录中打开终端并运行 sudo apt install ./package.deb

apt remove 找不到软件包:请使用已安装的软件包名称,而不是 .deb 文件名。运行 dpkg -l | grep keyword 查找软件包名称,然后用 sudo apt remove 包名 卸载。

软件包来源不受信任:deb 软件包在安装过程中可能以 root 权限运行脚本。只应从官方项目网站或受信任的厂商处下载软件包。当项目提供校验和或 GPG 签名时,安装前应先进行验证。

常见问题

我应该使用哪种方式安装 deb 文件?尽可能使用 apt。它会安装 deb 文件并自动解决依赖关系。只有在需要对安装过程进行底层控制时才使用 dpkg

为什么 dpkg 会因依赖错误而失败?因为 dpkg 不解决依赖关系,它只安装软件包本身。在 dpkg -i 之后运行 sudo apt install -f 来安装缺失的依赖。

从互联网安装 deb 软件包安全吗?只应从官方项目网站等受信任的来源安装 deb 文件。deb 软件包在安装时可能会以 root 权限运行任意脚本。如有校验和或 GPG 签名,请务必验证。

这些步骤在 Debian 和 Linux Mint 上也适用吗?是的。相同的命令适用于所有基于 Debian 的发行版,包括 Debian、Linux Mint 和 elementary OS。

如何找到要卸载的软件包名称?运行 dpkg -l | grep keyword 按名称搜索已安装的软件包。输出的第二列就是可用于 apt remove 的软件包名称。

结论

在 Ubuntu 上安装本地 deb 文件,推荐的方式是使用 apt,因为它会自动解决依赖关系。安装前可用 dpkg -Idpkg -c 检查软件包,需要卸载时使用 apt removeapt purge