【技巧】如何在 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
相关推荐
橙子也要努力变强8 小时前
进程与信号
linux·服务器·c++
HalvmånEver8 小时前
MySQL表的内连和外连
linux·数据库·学习·mysql
HABuo10 小时前
【linux(四)】套接字编程--基于UDP协议的客户端服务端
linux·服务器·c++·网络协议·ubuntu·udp·centos
艾莉丝努力练剑10 小时前
【Linux网络】Linux 网络编程入门:UDP Socket 编程(下)
linux·运维·服务器·网络·计算机网络·安全·udp
j_xxx404_17 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
_只道当时是寻常17 小时前
【Codex】Ubuntu 安装 Codex CLI 并解决 Clash 代理与账号认证问题
linux·ubuntu·chatgpt
brucelee18618 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
jsons119 小时前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志19 小时前
全志T113 Tina-SDK 配套工具链开发应用(从Makefile到CMake再到Autotools)
linux