当你从开发者网站下载 Linux 软件时,它可能是 .deb 文件,而不是来自 Ubuntu 软件仓库的软件包。这些文件采用 Debian 软件包格式,可以使用 apt、dpkg、gdebi 或图形化的 App Center 在 Ubuntu 上安装。
对于大多数本地 .deb 文件,apt 是推荐的命令行方式,因为它会在安装软件包的同时自动解决依赖关系。
安装来自非官方来源的 .deb 软件包时要格外小心。软件包在安装过程中可能会以 root 权限运行脚本,因此只应从官方项目网站或受信任的厂商处下载软件包。
本指南介绍如何在 Ubuntu 上安装 deb 文件、安装前如何检查软件包、如何解决依赖错误,以及之后如何卸载软件包。相同的命令也适用于 Debian、Linux Mint 和 elementary OS 等基于 Debian 的发行版。
快速参考
如需可打印的速查表,请参阅 apt 和 dpkg 备忘单。
| 任务 | 命令 |
|---|---|
| 使用 apt 安装 deb | sudo apt install ./package.deb |
| 使用 gdebi 安装 deb | sudo gdebi package.deb |
| 使用 dpkg 安装 deb | sudo 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 文件。如果你更喜欢使用终端,可以用 wget 或 curl 下载 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 文件
下面的小节介绍三种常见的命令行方式:apt、gdebi 和 dpkg。除非有特殊理由,否则应优先使用 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]:
在提示时输入 y,gdebi 就会解决并安装该 deb 软件包及其所有依赖项。
使用 dpkg 安装 deb 文件
dpkg 是基于 Debian 系统的底层软件包管理器。使用 -i(或 --install)选项配合 dpkg 安装 deb 软件包:
sudo dpkg -i teamviewer_amd64.deb
与 apt 和 gdebi 不同,dpkg 不会解决依赖关系。如果在安装 deb 软件包时遇到依赖错误,请运行以下 apt 命令来安装缺失的依赖并完成软件包配置:
sudo apt install -f
卸载 deb 软件包
要卸载通过 apt 或 dpkg 安装的软件包,请使用软件包名称(而不是 .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 -I 和 dpkg -c 检查软件包,需要卸载时使用 apt remove 或 apt purge。