00. 目录
01. 命令概述
dpkg命令的英文全称是Debian package
,dpkg是Debian Linux系统用来安装、创建和管理软件包的实用工具。
02. 命令格式
用法:dpkg [<选项> ...] <命令>
03. 常用选项
选项:
--admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg。
--root=<目录> 安装到另一个根目录下。
--instdir=<目录> 改变安装目录的同时保持管理目录不变。
--path-exclude=<表达式> 不要安装符合Shell表达式的路径。
--path-include=<表达式> 在排除模式后再包含一个模式。
-O|--selected-only 忽略没有被选中安装或升级的软件包。
-E|--skip-same-version 忽略版本与已安装软件版本相同的软件包。
-G|--refuse-downgrade 忽略版本早于已安装软件版本的的软件包。
-B|--auto-deconfigure 就算会影响其他软件包,也要安装。
--[no-]triggers 跳过或强制随之发生的触发器处理。
--verify-format=<格式> 检查输出格式('rpm'被支持)。
--no-debsig 不去尝试验证软件包的签名。
--no-act|--dry-run|--simulate
仅报告要执行的操作 - 但是不执行。
-D|--debug=<八进制数> 开启调试(参见 -Dhelp 或者 --debug=help)。
--status-fd <n> 发送状态更新到文件描述符<n>。
--status-logger=<命令> 发送状态更新到 <命令> 的标准输入。
--log=<文件名> 将状态更新和操作信息到 <文件名>。
--ignore-depends=<软件包>,...
忽略关于 <软件包> 的所有依赖关系。
--force-... 忽视遇到的问题(参见 --force-help)。
--no-force-...|--refuse-...
当遇到问题时中止运行。
--abort-after <n> 累计遇到 <n> 个错误后中止。
命令:
-i|--install <.deb 文件名> ... | -R|--recursive <目录> ...
--unpack <.deb 文件名> ... | -R|--recursive <目录> ...
-A|--record-avail <.deb 文件名> ... | -R|--recursive <目录> ...
--configure <软件包名> ... | -a|--pending
--triggers-only <软件包名> ... | -a|--pending
-r|--remove <软件包名> ... | -a|--pending
-P|--purge <软件包名> ... | -a|--pending
-V|--verify <软件包名> ... 检查包的完整性。
--get-selections [<表达式> ...] 把已选中的软件包列表打印到标准输出。
--set-selections 从标准输入里读出要选择的软件。
--clear-selections 取消选中所有不必要的软件包。
--update-avail <软件包文件> 替换现有可安装的软件包信息。
--merge-avail <软件包文件> 把文件中的信息合并到系统中。
--clear-avail 清除现有的软件包信息。
--forget-old-unavail 忘却已被卸载的不可安装的软件包。
-s|--status <软件包名> ... 显示指定软件包的详细状态。
-p|--print-avail <软件包名> ... 显示可供安装的软件版本。
-L|--listfiles <软件包名> ... 列出属于指定软件包的文件。
-l|--list [<表达式> ...] 简明地列出软件包的状态。
-S|--search <表达式> ... 搜索含有指定文件的软件包。
-C|--audit [<表达式> ...] 检查是否有软件包残损。
--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 显示版本信息。
04. 参考示例
4.1 安装软件
deng@itcast:~$ sudo dpkg -i tree_1.6.0-1_amd64.deb
(正在读取数据库 ... 系统当前共安装有 172173 个文件和目录。)
正准备解包 tree_1.6.0-1_amd64.deb ...
正在将 tree (1.6.0-1) 解包到 (1.6.0-1) 上 ...
正在设置 tree (1.6.0-1) ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
4.2 卸载软件
deng@itcast:~$ sudo dpkg -r tree
(正在读取数据库 ... 系统当前共安装有 172172 个文件和目录。)
正在卸载 tree (1.6.0-1) ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
deng@itcast:~$
4.3 列出已经安装的软件
deng@itcast:~$ dpkg -l
4.4 列出deb包的内容
deng@itcast:~$ dpkg -c tree_1.6.0-1_amd64.deb
drwxr-xr-x root/root 0 2012-05-02 00:43 ./
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/bin/
-rwxr-xr-x root/root 57176 2012-05-02 00:43 ./usr/bin/tree
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/share/
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/share/man/
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/share/man/man1/
-rw-r--r-- root/root 4100 2012-05-02 00:43 ./usr/share/man/man1/tree.1.gz
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/share/doc/
drwxr-xr-x root/root 0 2012-05-02 00:43 ./usr/share/doc/tree/
-rw-r--r-- root/root 2210 2011-06-24 22:34 ./usr/share/doc/tree/TODO
-rw-r--r-- root/root 2425 2012-02-04 21:32 ./usr/share/doc/tree/copyright
-rw-r--r-- root/root 2254 2011-06-24 22:34 ./usr/share/doc/tree/README.gz
-rw-r--r-- root/root 1552 2012-05-02 00:43 ./usr/share/doc/tree/changelog.Debian.gz
deng@itcast:~$
4.5 删除软件包(包括配置文件)
deng@itcast:~$ sudo dpkg -P tree
(正在读取数据库 ... 系统当前共安装有 172172 个文件和目录。)
正在卸载 tree (1.6.0-1) ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
deng@itcast:~$
4.6 列出与该软件包关联的文件
deng@itcast:~$ sudo dpkg -L tree
/.
/usr
/usr/bin
/usr/bin/tree
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/tree.1.gz
/usr/share/doc
/usr/share/doc/tree
/usr/share/doc/tree/TODO
/usr/share/doc/tree/copyright
/usr/share/doc/tree/README.gz
/usr/share/doc/tree/changelog.Debian.gz
deng@itcast:~$
4.7 列出对应软件包版本
deng@itcast:~$ sudo dpkg -l tree
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称 版本 体系结构 描述
+++-==============-============-============-=================================
ii tree 1.6.0-1 amd64 displays directory tree, in color
deng@itcast:~$
4.8 解开deb包的内容
deng@itcast:~/test$ sudo dpkg --unpack tree_1.6.0-1_amd64.deb
(正在读取数据库 ... 系统当前共安装有 172173 个文件和目录。)
正准备解包 tree_1.6.0-1_amd64.deb ...
正在将 tree (1.6.0-1) 解包到 (1.6.0-1) 上 ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
4.9 配置软件包
deng@itcast:~/test$ sudo dpkg --configure tree
正在设置 tree (1.6.0-1) ...
deng@itcast:~/test$
4.10 用法汇总
# dpkg -i package #安装包
# dpkg -R /usr/local/src #安装一个目录下面所有的软件包
# dpkg --unpack package #解开一个包,如果和-R一起使用,参数可以是一个目录
# dpkg --configure package #重新配置和释放软件包
# dpkg -r package #删除包
# dpkg --merge-avail #合并包
# dpkg -P #删除包,包括配置文件
# dpkg -A package #从软件包里面读取软件的信息
# dpkg --update-avail #替代软件包的信息
# dpkg --forget-old-unavail #删除Uninstall的软件包信息
# dpkg --clear-avail #删除软件包的Avaliable信息
# dpkg -C #查找只有部分安装的软件包信息
# dpkg --compare-versions ver1 op ver2 #比较同一个包的不同版本之间的差别
# dpkg -b directory [filename] #建立一个deb文件
# dpkg -c filename #显示一个Deb文件的目录
# dpkg -p package #显示包的具体信息
# dpkg -S filename-search-pattern #搜索指定包里面的文件(模糊查询)
# dpkg -L package #显示一个包安装到系统里面的文件目录信息
# dpkg -s package #报告指定包的状态信息
# dpkg -l #显示所有已经安装的Deb包,同时显示版本号以及简短说明
05. 附录
转载:https://blog.csdn.net/dengjin20104042056/article/details/101513983
查看评论