2. dpkg 命令

dpkg 是 Debian 和 Ubuntu 等 Linux 发行版中底层的软件包管理工具,主要用于安装、构建、删除和管理离线软件包( .deb 格式的软件包)。

dpkg 需要在命令行模式下运行。我们在使用 apt 命令安装软件包时,apt 命令也是间接的调用 dpkg 命令来安装软件包的。

dpkg 的特点:

  1. 直接操作本地文件,这个文件通常是 .deb 结尾的文件。
  2. 不处理依赖关系,如果当前的 .deb 包需要先安装另外一个 .deb 包。则会报错并停止安装。

命令格式

dpkg [选项] [参数]

如果运行此命令的用户没有 root 权限,还需要在 前面添加 sudo 命令(获取管理员权限命令)来运行 dpkg 命令。格式如下:

sudo dpkg [选项] [参数]

dpkg 常用选项

选项
说明
-i 包文件名.deb
安装指定的软件包。
-r 包名
卸载软件包(保留配置,下次安装还可以使用)。
-P 包名
清除软件包(删除配置,彻底删除)。
-l
列出已经安装的软件包。
-L
列出该软件包在系统上安装的所有文件。
-S 文件路径
查询某个文件属于哪个软件包。
-I 包文件名.deb
查看本地 .deb 文件的信息(版本,描述等)。

示例:

使用 dpkg 安装和卸载 Visual Studio Code。

Visual Studio Code 是微软开发的一款跨平台的编辑器,通常我们简称其 VS CodeVS Code 常用与软件开发中代码的编写。VS Code 可以平台运行在 Ubuntu Linux 操作系统上。

在 Ubuntu 系统中安装 VS Code 可以先在微软的网站上下载其安装包(通常以 .deb 结尾),然后使用 dpkg 命令进行安装。

Visual Studio Code 的下载地址:

https://code.visualstudio.com/Download

例如,本示例下载的安装包是 code_1.121.0-1779186519_amd64.deb 下载地址是: https://vscode.download.prss.microsoft.com/dbazure/download/stable/f6cfa2ea2403534de03f069bdf160d06451ed282/code_1.121.0-1779186519_amd64.deb。在 Ubuntu Linux 系统中可以通过 Firefox 浏览器直接下载。也可以使用 wget 命令 直接下载

1、 使用 wget 命令下载 VS Code 的安装包。

weimz@mzstudio:~$ ls
hello.py  snap  下载  公共  图片  文档  桌面  模板  视频  音乐
weimz@mzstudio:~$ wget -i https://vscode.download.prss.microsoft.com/dbazure/download/stable/f6cfa2ea2403534de03f069bdf160d06451ed282/code_1.121.0-1779186519_amd64.deb
--2026-05-26 21:47:59--  https://vscode.download.prss.microsoft.com/dbazure/download/stable/f6cfa2ea2403534de03f069bdf160d06451ed282/code_1.121.0-1779186519_amd64.deb
正在解析主机 vscode.download.prss.microsoft.com (vscode.download.prss.microsoft.com)... 120.226.90.27
正在连接 vscode.download.prss.microsoft.com (vscode.download.prss.microsoft.com)|120.226.90.27|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 158413350 (151M) [application/octet-stream]
正在保存至: ‘code_1.121.0-1779186519_amd64.deb.1’

de_1.121.0-1779   8%[      ]  12.98M  6.41MB/s 
weimz@mzstudio:~$ ls
code_1.121.0-1779186519_amd64.deb  下载  文档  视频
hello.py                           公共  桌面  音乐
snap                               图片  模板

可见 VS Code 的安装包文件 code_1.121.0-1779186519_amd64.deb 已经下载完毕。

2、使用 dpkg -i 命令安装 VS code

weimz@mzstudio:~$ sudo dpkg -i code_1.121.0-1779186519_amd64.deb
[sudo: authenticate] 密码:          
(正在读取数据库 ... 系统当前共安装有 162483 个文件和目录。)
准备解压 code_1.121.0-1779186519_amd64.deb  ...
正在解压 code (1.121.0-1779186519) 并覆盖 (1.121.0-1779186519) ...
正在设置 code (1.121.0-1779186519) ...
正在处理用于 gnome-menus (3.38.1-1ubuntu1) 的触发器 ...
正在处理用于 desktop-file-utils (0.28-1build1) 的触发器 ...
正在处理用于 shared-mime-info (2.4-5build3) 的触发器 ...
weimz@mzstudio:~$ 

3、使用 dpkg -l 命令查看已经安装的软件包

weimz@mzstudio:~$ dpkg -l code
+-- Desired=Unknown/Install/Remove/Purge/Hold
|+- Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
||+ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||| 名称           版本               体系结构     描述
+++-==============-==================-============-=============================
ii  code           1.121.0-1779186519 amd64        Code editing. Redefined.

4、使用 code 命令调用 VS Code 编写文件 hello.py

weimz@mzstudio:~$ code hello.py 
weimz@mzstudio:~$ 

VS Code 的编辑界面如下:

Ubuntu 下 VS Code

5、使用 dpkg -r 或 dpkg -P 命令卸载 VS Code

weimz@mzstudio:~$ sudo dpkg -P code
(正在读取数据库 ... 系统当前共安装有 162481 个文件和目录。)
正在卸载 code (1.121.0-1779186519) ...
debconf: 无法初始化前端界面:Dialog
debconf: (对话框界面要求屏幕画面必须为至少 13 行高及 31 列宽.)
debconf: 返回前端界面:Readline
正在清除 code (1.121.0-1779186519) 的配置文件 ...
debconf: 无法初始化前端界面:Dialog
debconf: (对话框界面要求屏幕画面必须为至少 13 行高及 31 列宽.)
debconf: 返回前端界面:Readline
正在处理用于 shared-mime-info (2.4-5build3) 的触发器 ...
正在处理用于 gnome-menus (3.38.1-1ubuntu1) 的触发器 ...
正在处理用于 desktop-file-utils (0.28-1build1) 的触发器 ...
weimz@mzstudio:~$ code hello.py 
bash: /usr/bin/code: 没有那个文件或目录

删除后执行 code 命令已经不存在了,可见 VS Code 已经彻底删除。

练习:

  1. 使用 apt 下载 htop 的安装包,再使用 dpkg 安装和卸载 htop。
    • htop 是用来显示系统资源占用状况的命令。
  2. 使用 apt 下载 wget 的安装包,再使用 dpkg 安装和卸载 wget。
    • wget 是用来下载网络资源的强大命令,他支持通过 HTTPHTTPSFTP 协议下载文件并支持断点续传。