一、dpkg命令简介
“dpkg ”是“Debian Packager ”的简写。为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都使用 “dpkg”,例如 “Ubuntu”、“Knoppix ”等。dpkg是Debian软件包管理器的基础,它被伊恩·默多克创建于1993年。dpkg与RPM十分相似,同样被用于安装、卸载和供给.deb软件包相关的信息。dpkg本身是一个底层的工具。上层的工具,如APT,被用于从远程获取软件包以及处理复杂的软件包关系。 “dpkg”字母分别是d:Debian,p:package,k:keeprule,g:generate,dpkg是“Debian Package Keeprule Generate”的简写。
二、命令使用示例
1、获取命令帮助
root@test:~# dpkg --help
2、查看命令版本
root@test:~# dpkg --version
Debian dpkg 软件包管理程序 1.19.7 (amd64) 版。
本软件是自由软件;要获知复制该软件的条件,请参阅 GNU 公共许可证
第二版或其更新的版本。本软件【不】提供任何担保。
3、-i安装deb包
使用-i或者–install参数安装指定的deb软件包,dpkg命令与rpm包管理器一样,需要手动解决依赖,如果遇到依赖包未安装会报错并终止安装。
root@test:/opt# dpkg -i elpa-simple-httpd_1.5.1-5_all.deb
4、-l列出所有已安装软件包
dpkg -l命令列出所有已安装的软件包,如果后面跟上包名则表示简明地列出软件包的状态。
root@test:/opt# dpkg -l
5、-L列出已安装软件包列表
root@test:/opt# dpkg -L vim
6、-s显示已安装软件包的详细信息
root@test:/opt# dpkg -s vim
7、-S查询一个文件属于哪个软件包
root@test:/opt# dpkg -S httpd
8、-r卸载一个软件包
root@test:/opt# dpkg -r wget
9、-P完成删除一个软件包及配置
root@test:/opt# dpkg -P elpa-simple-httpd
(正在读取数据库 … 系统当前共安装有 231637 个文件和目录。)
正在卸载 elpa-simple-httpd (1.5.1-5) …
10、-V验证软件包是否安装
使用-V验证软件包是否被安装,这里要求包名是完整的,比如这里安装完成elpa-simple-httpd之后验证httpd还是会提示未安装。
root@test:/opt# dpkg -V elpa-simple-httpd
dpkg: 软件包 elpa-simple-httpd 没有被安装
三、使用语法及参数简介
1、使用语法
用法:dpkg [<选项> …] <命令>
2、参数简介
参数 | 参数说明 |
---|---|
-i | 安装软件包。 |
-r | 删除软件包。 |
-P | 完全删除软件包,包括配置文件。 |
-l | 列出已安装的软件包。 |
-s | 显示软件包的详细信息。 |
-L | 列出软件包的文件列表。 |
-S | 查找指定文件属于哪个软件包。 |
-c | 显示软件包的内容列表。 |
-G | 忽略版本早于已安装软件版本的的软件包。 |
-I | 显示软件包的详细信息,包括依赖关系。 |
-C | 检查是否有软件包残损。 |
-l | 列出软件包的状态。 |
-R | 重新配置软件包。 |
-V | 验证软件包的完整性。 |
-B | 构建二进制软件包。 |
-b | 构建源代码软件包。 |
–get-selections | 把已选中的软件包列表打印到标准输出。 |
–set-selections | 从标准输入里读出要选择的软件。 |
–clear-selections | 取消选中所有不必要的软件包。 |
–update-avail | 替换现有可安装的软件包信息。 |
–merge-avail | 把文件中的信息合并到系统中。 |
–clear-avail | 清除现有的软件包信息。 |
–forget-old-unavail | 忘却已被卸载的不可安装的软件包。 |
–yet-to-unpack | 列出标记为待解压的软件包。 |
–predep-package | 列出待解压的预依赖。 |
–add-architecture <体系结构> | 添加 <体系结构> 到体系结构列表。 |
–remove-architecture <体系结构> | 从架构列表中移除 <体系结构>。 |
–print-architecture | 显示 dpkg 体系结构。 |
–print-foreign-architectures | 显示已启用的异质体系结构。 |
–assert-<特性> | 对指定特性启用断言支持。 |
–validate-<属性> <字符串> | 验证一个 <属性>的 <字符串>。 |
–compare-vesions <a> <关系> <b> | 比较版本号 - 见下。 |
–force-help | 显示本强制选项的帮助信息。 |
-Dh | –debug=help |
-?, --help | 显示本帮助信息。 |
–version | 显示版本信息。 |
四、总结
dpkg命令参数很多,实际运维工作中我们很少使用dpkg命令安装软件包,更多使用的是apt-get命令安装,apt可以自动解决依赖包的问题。dpkg命令主要用安装/etc/apt/sources.list源中找不到的软件包,比如安全厂商的vpn、系统厂商自研的软件包等。dpkg命令我们只需要记住常用的dpkg -i安装软件包,dpkg -r卸载软件包,dpkg -l列出软件包,dpkg -S查找软件包即可。另外还有一个就是dpkg -i前先确认包是否已经安装,如果已经安装执行了该命令之后如果出现错误可能导致包无法使用。这个时候我们可以使用apt --fix-broken install修复已经安装的软件包。