首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Linux】一步一步学Linux——dpkg命令(269)

  • 23-11-18 14:00
  • 3919
  • 5711
blog.csdn.net

00. 目录

文章目录

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

01. 命令概述

dpkg命令的英文全称是Debian package,dpkg是Debian Linux系统用来安装、创建和管理软件包的实用工具。

02. 命令格式

用法:dpkg [<选项> ...] <命令>
  • 1

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> 个错误后中止。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
命令:
  -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                    显示版本信息。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

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) 的触发器 ...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.2 卸载软件

deng@itcast:~$ sudo dpkg -r tree 
(正在读取数据库 ... 系统当前共安装有 172172 个文件和目录。)
正在卸载 tree (1.6.0-1) ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
deng@itcast:~$ 
  • 1
  • 2
  • 3
  • 4
  • 5

4.3 列出已经安装的软件

deng@itcast:~$ dpkg -l 

  • 1
  • 2

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:~$ 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4.5 删除软件包(包括配置文件)

deng@itcast:~$ sudo dpkg -P tree 
(正在读取数据库 ... 系统当前共安装有 172172 个文件和目录。)
正在卸载 tree (1.6.0-1) ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
deng@itcast:~$ 
  • 1
  • 2
  • 3
  • 4
  • 5

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:~$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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:~$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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) 的触发器 ...
  • 1
  • 2
  • 3
  • 4
  • 5

4.9 配置软件包

deng@itcast:~/test$ sudo dpkg --configure tree
正在设置 tree (1.6.0-1) ...
deng@itcast:~/test$ 
  • 1
  • 2
  • 3

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包,同时显示版本号以及简短说明
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

05. 附录

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

注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/101513983"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top