[TOC]
0x01 dpkg 软件包管理基础工具快速入门
描述:dpkg 是软件包管理基础工具 “Debian Packager ”的简写,为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除,dpkg命令与rpm有异曲同工之妙;
dpkg 命令 - Debian、Ubuntu系列软件包管理查看
使用方法:
[TOC]
描述:dpkg 是软件包管理基础工具 “Debian Packager ”的简写,为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除,dpkg命令与rpm有异曲同工之妙;
使用方法:
[TOC]
描述:dpkg 是软件包管理基础工具 “Debian Packager ”的简写,为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除,dpkg命令与rpm有异曲同工之妙;
使用方法:1
2
3dpkg --help
dpkg –licence #显示dpkg的Licence
dpkg –version #显示dpkg的版本号
使用案例: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
40
41
42
43
44
45
46
47
48
49
50
51
52
53#示例1.安装/删除/更新/读取软件
dpkg -i <.deb file name> #安装指定deb软件包
dpkg -R /usr/local/src #安装一个目录下面所有的软件包
dpkg -r avg71flm #删除软件包(保留其配置信息)
dpkg -P avg71flm # 删除一个包(包括配置信息),完全清除一个已安装的包。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
dpkg –update-avail <Packages-file> #替代软件包的信息
dpkg –merge-avail <Packages-file> #合并软件包信息
dpkg –forget-old-unavail #丢失所有的Uninstall的软件包信息
dpkg –clear-avail #删除软件包的Avaliable信息
dpkg -b direc×y [filename] #建立一个deb文件
dpkg -c filename #显示一个Deb文件的目录
#示例2.信息读取
dpkg -A package_file #从软件包里面读取软件的信息
dpkg -L package #查看软件安装在什么地方,显示一个包安装到系统里面的文件目录信息
dpkg -C #查找只有部分安装的软件包信息
dpkg -l package-name-pattern #列出软件版本软件名,已安装包
dpkg -p package-name #显示包的具体信息小写
dpkg -S filename-search-pattern #搜索指定包里面的文件(模糊查询)
dpkg -I filename [control-file] #显示一个Deb的说明,搜索Deb包
dpkg -s package-name #报告指定包的状态信息
#示例3.搜索Deb包:
命令行:[dpkg -s|-L|-p] package-name
示例:dpkg -s ssh
示例:dpkg -L apache2
示例:dpkg -p cacti
#示例4.查看具体某个包是否安装
dpkg --get-selections | grep - debianinstallname
#释放软件包,但是不进行配置
dpkg –unpack avg71flm_r28-1_i386.deb # 如果和-R一起使用,参数可以是一个目录
#安装一个目录下面所有的软件包
dpkg –configure avg71flm_r28-1_i386.deb # #如果和-a一起使用,将配置所有没有配置的软件包
dpkg -reconfigure xxx #重新配置软件,具体的应用此处不赘述。
#比较同一个包的不同版本之间的差别
dpkg –compare-versions ver1 op ver2
#有些软件很难卸载,而且还阻止了别的软件的应用,就能够用这个,但是有点冒险
dpkg --force-all --purge packagename
#64位得安装32位兼容库:
dpkg --add-architecture i386
# 忽略依赖安装
sudo dpkg --ignore-depends=kubernetes-cni -i kubeadm_1.13.5-00_amd.deb
实践案例:1
2
3
4~$ dpkg --get-selections | grep linux-modules
linux-modules-5.4.0-113-generic deinstall
linux-modules-5.4.0-117-generic install
linux-modules-5.4.0-120-generic install
描述: 该命令是查询dpkg数据库的工具, 例如查询ubuntu中的库文件(动态链接库、文件)属于哪个deb包并查询包版本。
语法参数:1
2
3
4
5
6
7
8
9
10
11
12# SYNOPSIS
dpkg-query [option...] command
# 参数
-l, --list [package-name-pattern...] : 列出与一个或多个模式匹配的所有已知包。
-W, --show [package-name-pattern...] :与--list选项一样它将列出与给定模式匹配的所有包,但是可以使用--showformat选项自定义输出 。
-s, --status [package-name...] :报告指定包的状态。
-L, --listfiles package-name.. :从包名列出安装到系统的文件,当列出多个包名时,所请求的文件列表以空行分隔。
--control-list package-name :从包名列出安装到系统的控制文件(自dpkg 1.16.5起)。
--control-show package-name control-file :将安装到系统的控制文件从包名打印到标准输出(从dpkg 1.16.5开始)。
-S, --search filename-search-pattern... : 搜索拥有与给定模式(动态链接库)对应的文件的包。
-p, --print-avail [package-name...] : 显示有关包的详细信息,如/var/lib/dpkg/available中所示。
使用示例: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# 示例1.列举出 libc6* 匹配到的包
~$ dpkg-query -l 'libc6*'
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 libc6:amd64 2.31-0ubuntu9.7 amd64 GNU C Library: Shared libraries
un libc6-amd64 <none> <none> (no description available)
# 示例2.查看 libpam-modules 包安装到系统中的文件。
~$ dpkg-query -L libpam-modules
dpkg-query -L libpam-modules
/etc/security/access.conf
....
/etc/security/sepermit.conf
/etc/security/time.conf
/lib/x86_64-linux-gnu/security/pam_access.so
....
/lib/x86_64-linux-gnu/security/pam_extrausers.so
# 示例3.查看静态连接库属于哪一个包并显示器绝对路径。
# 查询 pam_tally2.so 库所在包名称
~ $ dpkg -S pam_tally2.so # ubuntu 20.04
libpam-modules:amd64: /lib/x86_64-linux-gnu/security/pam_tally2.so
# 查询 pam_faillock.so 库所在包名称
~ $ dpkg -S pam_faillock # ubuntu 22.04
libpam-modules:amd64: /lib/x86_64-linux-gnu/security/pam_faillock.so
libpam-modules:amd64: /usr/share/man/man8/pam_faillock.8.gz
# 查询 /etc/security/access.conf 文件属于哪一个deb包
~ $ dpkg-query -S /etc/security/access.conf
libpam-modules:amd64: /etc/security/access.conf
温馨提示:上述-l
参数中Desired/Status/Err
解析如下。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# Desired action:
u = Unknown
i = Install
h = Hold
r = Remove
p = Purge
# Package status:
n = Not-installed
c = Config-files
H = Half-installed
U = Unpacked
F = Half-configured
W = Triggers-awaiting
t = Triggers-pending
i = Installed
# Error flags:
<empty> = (none)
R = Reinst-required
sudo apt-mark hold linux-image-4.13.0-36-generic
sudo apt-mark hold linux-image-extra-4.13.0-36-generic
sudo apt-mark hold linux-headers-4.13.0-36-generic
sudo apt-mark unhold linux-image-4.13.0-36-generic
sudo apt-mark unhold linux-image-extra-4.13.0-36-generic
sudo apt-mark unhold linux-headers-4.13.0-36-generic
https://blog.csdn.net/Alen_xiaoxin/article/details/124962470
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/系统运维/Linux/常用命令/安装软件类命令/dpkg软件包管理使用一览表.md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/5-18-150.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议