【技巧】如何在 Ubuntu 中安装 .deb 软件包

如何在 Ubuntu 中安装 .deb 软件包

  • [如何在 Ubuntu 中安装 .deb 软件包](#如何在 Ubuntu 中安装 .deb 软件包)
    • 一、终端命令安装(推荐)
      • [方法 1:使用 `apt` 命令(最推荐)](#方法 1:使用 apt 命令(最推荐))
      • [方法 2:使用 `dpkg` 命令(基础)](#方法 2:使用 dpkg 命令(基础))
      • [方法 3:使用 `gdebi` 命令(专为本地 deb 设计)](#方法 3:使用 gdebi 命令(专为本地 deb 设计))
    • 二、图形界面安装(适合桌面用户)
      • [方法 4:使用 `GDebi` 图形工具](#方法 4:使用 GDebi 图形工具)
      • [方法 5:直接双击(系统默认,不推荐)](#方法 5:直接双击(系统默认,不推荐))
    • 三、常见问题及解决方法
      • [1. 安装时提示 "broken packages" 或 "unmet dependencies"](#1. 安装时提示 “broken packages” 或 “unmet dependencies”)
      • [2. 提示 "architecture mismatch" (架构不匹配)](#2. 提示 “architecture mismatch” (架构不匹配))
      • [3. 安装后找不到软件图标](#3. 安装后找不到软件图标)
      • [4. 如何彻底卸载通过 .deb 安装的软件](#4. 如何彻底卸载通过 .deb 安装的软件)
    • 四、最佳实践总结
    • 五、附录:演示案例

如何在 Ubuntu 中安装 .deb 软件包

一、终端命令安装(推荐)

终端方式功能强大、反馈清晰,是 Linux 用户最可靠的选择。

方法 1:使用 apt 命令(最推荐)

从 Ubuntu 16.04 开始,apt 命令可以直接安装本地的 .deb 文件,并自动解析和安装所有依赖。这是目前最简单、成功率最高的方法。

步骤:

  1. 打开终端(Ctrl + Alt + T)。

  2. 切换到 .deb 文件所在目录:

    bash 复制代码
    cd ~/Downloads
  3. 执行安装命令(注意 ./ 前缀):

    bash 复制代码
    sudo apt install ./myapp_1.2.3_amd64.deb

说明:

  • ./ 作用是明确指定文件路径,避免与同名的软件仓库包混淆。
  • apt 会自动从 Ubuntu 软件源中下载并安装缺少的依赖库。
  • 如果软件仓库中已有该软件的旧版本,apt 会自动对其进行更新。

卸载方法:

bash 复制代码
sudo apt remove myapp   # 替换为实际的软件包名

方法 2:使用 dpkg 命令(基础)

dpkg 是 Debian 包管理系统的底层工具,它不会自动处理依赖 。如果用来直接安装一个复杂的 .deb 包,极易出现依赖缺失错误。

安装命令:

bash 复制代码
sudo dpkg -i myapp_1.2.3_amd64.deb

处理依赖缺失:

如果安装失败并提示缺少某些软件包,可以立即运行以下命令修复:

bash 复制代码
sudo apt --fix-broken install

上面的命令会安装所有缺失的依赖,然后再重新尝试安装原 .deb 包(通常不需要再敲一次安装命令,因为 apt --fix-broken install 会尝试完成未完成的安装)。

适用场景:

  • 你确定 .deb 包没有任何依赖问题(例如一个很小的自包含工具)。
  • 在脚本中需要手动控制每一步。

缺点: 步骤多,容易出错,新手不太友好。


方法 3:使用 gdebi 命令(专为本地 deb 设计)

gdebi 是一个轻量级工具,专门用于安装本地 .deb 文件并自动处理依赖,是 apt install ./ 出现之前最流行的解决方案。现在仍然是一个可靠的备选方案。

安装 gdebi:

bash 复制代码
sudo apt update
sudo apt install gdebi-core

使用 gdebi 安装:

bash 复制代码
sudo gdebi myapp_1.2.3_amd64.deb

gdebi 会先分析依赖关系,询问你是否继续,确认后自动下载并安装所有必需的依赖包。

优点: 简洁,专门解决 .deb 依赖问题,不会干扰系统的其他包管理操作。


二、图形界面安装(适合桌面用户)

如果你不习惯使用终端,也可以完全通过鼠标操作完成安装。图形界面方法有两种,推荐使用 GDebi 图形版。

方法 4:使用 GDebi 图形工具

GDebi 既有命令行版(gdebi-core)也有图形界面版(gdebi),后者是安装 .deb 文件最理想的图形工具。

安装图形版 GDebi:

bash 复制代码
sudo apt install gdebi

使用方法:

  1. 在文件管理器中找到 .deb 文件。
  2. 右键单击该文件 → 打开方式GDebi Package Installer(如果没有,选择"其他应用程序",然后从列表中找到 GDebi)。
  3. 点击"安装"按钮,输入密码即可。
  4. 安装完成后,关闭窗口。

为什么不用系统自带的"软件安装"?

Ubuntu 默认双击 .deb 会调用"软件中心"(Ubuntu Software)或"应用中心"(App Center)。这些工具虽然简单,但在处理复杂依赖时常会无响应或直接报错。GDebi 则更加稳定、可靠。


方法 5:直接双击(系统默认,不推荐)

你可以直接双击 .deb 文件,系统会自动用默认的软件管理器打开(通常是"软件安装"或"应用中心")。点击"安装"按钮即可。

缺点:

  • 依赖处理不如 aptgdebi 智能。
  • 有时会静默失败,不会明确提示缺少哪些依赖。
  • 部分旧版 Ubuntu 上甚至无法安装非官方源的 .deb

建议: 仅当你确认该 .deb 包极其简单(比如一个纯配置文件包或单一可执行文件)时使用此方法。


三、常见问题及解决方法

1. 安装时提示 "broken packages" 或 "unmet dependencies"

原因: 缺少依赖库或系统中已有冲突版本的软件包。

解决方案:

bash 复制代码
sudo apt --fix-broken install

该命令会尝试修复所有损坏的包依赖关系。执行后再重新安装你的 .deb


2. 提示 "architecture mismatch" (架构不匹配)

例如:你下载了 i386arm64 的包,但你的系统是 amd64 (x86_64)。

解决方法: 去官网下载正确架构的 .deb 文件。使用命令 dpkg --print-architecture 查看系统架构。

架构 说明
amd64 64 位 Intel/AMD 处理器(最常见)
i386 32 位系统(已很少见)
arm64/armhf ARM 设备(树莓派等)

3. 安装后找不到软件图标

  • 部分命令行工具不会在应用菜单中创建图标,需要直接在终端输入命令运行。
  • 也可能是安装不完整,尝试重启或执行 sudo apt update && sudo apt upgrade 后再试。

4. 如何彻底卸载通过 .deb 安装的软件

  1. 查看确切包名:

    bash 复制代码
    dpkg -l | grep 软件名关键词
  2. 卸载:

    bash 复制代码
    sudo apt remove 完整包名       # 保留配置文件
    sudo apt purge 完整包名        # 连配置一起删除

四、最佳实践总结

你的角色 / 场景 推荐方法 原因
普通桌面用户,想一次成功 sudo apt install ./xxx.deb 最简单、最可靠
喜欢 GUI 且追求稳定 图形版 GDebi 比系统软件中心更专业
习惯手动控制,或写脚本 dpkg -i + apt --fix-broken install 细粒度控制
备用方案 / 无网络环境 先用 dpkg -i,再用第三方工具手动补依赖(较麻烦) -

核心建议:

优先使用 sudo apt install ./xxx.deb,这条命令几乎是万能的,既支持本地安装,又能自动拉取依赖。

只有当你在没有互联网的环境下,才需要考虑预先下载好所有依赖并使用 dpkg


五、附录:演示案例

假设你下载了 Google Chrome 的 .deb 文件到 ~/Downloads 目录:

bash 复制代码
cd ~/Downloads
sudo apt install ./google-chrome-stable_current_amd64.deb

输入密码后,apt 会将 Chrome 安装好,并自动安装所有必要的库(如 libu2f-udev 等)。安装完成后,你可以在应用菜单中找到 Chrome 图标。

卸载时:

bash 复制代码
sudo apt remove google-chrome-stable
相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言