00. 目录

文章目录

  • 00. 目录
  • 01. 命令概述
  • 02. 命令格式
  • 03. 常用选项
  • 04. 参考示例
  • 05. 附录

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. 附录

参考:【Linux】一步一步学Linux系列教程汇总

【Linux】一步一步学Linux——dpkg命令(269)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. Linux下dpkg的用法,linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...

  6. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  7. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  8. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  9. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

最新文章

  1. tf13: 简单聊天机器人
  2. 【深度学习】我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!
  3. 音视频技术开发周刊 | 146
  4. 如何修改elementUI里面Dialog组件标题的样式
  5. 现在的男生真的太惨了
  6. rest post put_REST / HTTP方法:POST与PUT与PATCH
  7. Class.getResource和ClassLoader.getResource的区别分析
  8. 从CentOS6.0i386到CentOS6.6x86-64,搬家中,磕磕跘跘,各种折腾……
  9. Hadoop 面试,来看这篇就够了
  10. 计算机管理里面蓝牙音频有问题,win10更新到1903版,蓝牙音频存在问题,微软终于给出了解决方法-win10更新...
  11. 汉诺塔--递归和非递归实现
  12. 谈谈VIP漂移那点破事
  13. 定时任务执行框架quartz之时间配置参考以及Demo
  14. sublime实用快捷键 mac版
  15. 哈夫曼编码(Huffman Coding)原理详解
  16. 算法基础知识总结(数学知识)
  17. [日志]中国十大名花
  18. 【论文】解读AM-GCN: Adaptive Multi-channel Graph Convolutional
  19. 微信小程序获取客户端IP地址,HTTPS接口(ts\js)
  20. jQuery的9种方式实现下拉列表

热门文章

  1. EntLib.com Forum – 开源ASP.NET论坛 v4.0(提供源码下载)
  2. html5 打印api,HTML5的API(一)
  3. Java黑皮书课后题第5章:*5.47(商业:检测ISBN-13)ISBN-13是标识书籍的新标准。它使用13位数字d1d2d3~d12d13,d13是校验和。如果校验和为10,则替换为0。求所有数字
  4. Java黑皮书课后题第5章:**5.27(显示闰年)编写程序,显示从101到2100期间所有闰年,每行显示10个。数字之间用一个空格字符隔开,同时显示这期间闰年的数目
  5. kbmMW功能 - kbmMWProcess单元(转帖)
  6. javascript中的replace方法
  7. ssh服务、密钥登陆配置
  8. Node.js的环境搭建
  9. python初步学习-查看文档及数据类型转换
  10. ::的类名前有个 ,什么意思?