3. dpkg 命令
dpkg 是 Debian 和 Ubuntu 等 Linux 发行版中底层的软件包管理工具,主要用于安装、构建、删除和管理离线软件包( .deb 格式的软件包)。
dpkg 需要在命令行模式下运行。我们在使用 apt 命令安装软件包时,apt 命令也是间接的调用 dpkg 命令来安装软件包的。
dpkg 的特点:
- 直接操作本地文件,这个文件通常是
.deb结尾的文件。 - 不处理依赖关系,如果当前的
.deb包需要先安装另外一个.deb包。则会报错并停止安装。
命令格式
dpkg [选项] [参数]
如果运行此命令的用户没有 root 权限,还需要在 前面添加 sudo 命令(获取管理员权限命令)来运行 dpkg 命令。格式如下:
sudo dpkg [选项] [参数]
dpkg 常用选项
选项
说明
-i 包文件名.deb安装指定的软件包。
-r 包名卸载软件包(保留配置,下次安装还可以使用)。
-P 包名清除软件包(删除配置,彻底删除)。
-l列出已经安装的软件包。
-L列出该软件包在系统上安装的所有文件。
-S 文件路径查询某个文件属于哪个软件包。
-I 包文件名.deb查看本地 .deb 文件的信息(版本,描述等)。
示例:
使用 dpkg 安装和卸载 vim。
1、 使用 apt download tree 命令下载 tree 命令的安装包 ``
weimingze@mzstudio:~$ sudo apt download tree
... # 下载过程(略)
weimingze@mzstudio:~$ ls -l tree*
-rw-r--r-- 1 root root 47130 Apr 9 2024 tree_2.1.1-2ubuntu3_amd64.deb
2、使用 dpkg -i 命令安装 tree
weimingze@mzstudio:~$ sudo dpkg -i tree_2.1.1-2ubuntu3_amd64.deb
Selecting previously unselected package tree.
(Reading database ... 152256 files and directories currently installed.)
Preparing to unpack tree_2.1.1-2ubuntu3_amd64.deb ...
Unpacking tree (2.1.1-2ubuntu3) ...
Setting up tree (2.1.1-2ubuntu3) ...
Processing triggers for man-db (2.12.0-4build2) ...
3、使用 dpkg -l 命令查看已经安装的软件包
weimingze@mzstudio:~$ dpkg -l tree
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)
||/ Name Version Architecture Description
+++-==============-==============-============-================================>
ii tree 2.1.1-2ubuntu3 amd64 displays an indented directory t>
lines 1-6/6 (END)
3、使用 tree 查看 /etc/apt/sources.list.d/ 文件夹的内容
weimingze@mzstudio:~$ tree /etc/apt/sources.list.d/
/etc/apt/sources.list.d/
├── ubuntu.sources
├── ubuntu.sources.curtin.orig
└── ubuntu.sources.save
1 directory, 3 files
4、使用 dpkg -r 或 dpkg -P 命令卸载 vim
weimingze@mzstudio:~$ sudo dpkg -P tree
(Reading database ... 152263 files and directories currently installed.)
Removing tree (2.1.1-2ubuntu3) ...
Processing triggers for man-db (2.12.0-4build2) ...
weimingze@mzstudio:~$ tree
Command 'tree' not found, but can be installed with:
sudo snap install tree # version 2.1.3+pkg-5852, or
sudo apt install tree # version 2.1.1-2
See 'snap info tree' for additional versions.
删除后执行 tree 命令已经不存在了,可见 tree 命令已经彻底删除。
练习:
- 使用
apt下载htop的安装包,再使用dpkg安装和卸载htop。htop是用来显示系统资源占用状况的命令。
- 使用
apt下载wget的安装包,再使用dpkg安装和卸载wget。wget是用来下载网络资源的强大命令,他支持通过HTTP、HTTPS和FTP协议下载文件并支持断点续传。