dpkg包管理器详解

我的问题
先说先我使用时的疑问。在使用dpkg -l列出软件列表后,

dpkg包管理器详解

看到前面有列出ii或者rc,而且有的软件安装了不同的版本,感觉很奇怪。而且像wine,我在安装1.7时已经卸载了1.6,可是软件列表中还能看见。
通过查询,原来,

ii 表示软件正常安装
rc表示软件已卸载,可是配置文件还在。
知道原因,那么应该只要查出配置文件就可以了,一个一个查找删除非常的麻烦,好在dpkg给我们提供了一个简单的方法,可以通过以下命令进行清理。
dpkg -l | grep ^rc | cut -d' ' -f3 | sudo xargs dpkg --purge

dpkg包管理器详解

补充
后来看到更为详细的讲解。

每条记录对应一个软件包, 注意每条记录的第一, 二, 三个字符. 这就是软件包的状态标识, 后边依此是软件包名称, 版本号, 和简单描述.
* 第一字符为期望值,它包括:
u 状态未知,这意味着软件包未安装,并且用户也未发出安装请求.
i 用户请求安装软件包.
r 用户请求卸载软件包.
p 用户请求清除软件包.
h 用户请求保持软件包版本锁定.
* 第二列,是软件包的当前状态.此列包括软件包的六种状态.
n 软件包未安装.
i 软件包安装并完成配置.
c 软件包以前安装过,现在删除了,但是它的配置文件还留在系统中.
u 软件包被解包,但还未配置.
f 试图配置软件包,但是失败了.
h 软件包安装,但是但是没有成功.
* 第三列标识错误状态,可以总结为四种状态. 第一种状态标识没有问题,为空. 其它三种符号则标识相应问题.
h 软件包被强制保持,因为有其它软件包依赖需求,无法升级.
r 软件包被破坏,可能需要重新安装才能正常使用(包括删除).
x 软包件被破坏,并且被强制保持.

dpkg的用法
问题解决了,下面记录下dpkg的常见用法。

1)安装软件
命令:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb
2)安装一个目录下面所有的软件包
命令:dpkg -R
示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置
命令:dpkg –-unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –-unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包
命令:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
命令:dpkg -r
示例:dpkg -r avg71flm
6)替代软件包的信息
命令:dpkg –update-avail
7)合并软件包信息
dpkg –merge-avail
8)从软件包里面读取软件的信息
命令:dpkg -A package_file
9)删除一个包(包括配置信息)
命令:dpkg -P
10)丢失所有的Uninstall的软件包信息
命令:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
命令:dpkg –clear-avail
12)查找只有部分安装的软件包信息
命令:dpkg -C
13)比较同一个包的不同版本之间的差别
命令:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
命令:dpkg –help
15)显示dpkg的Licence
命令:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
命令:dpkg –version
17)建立一个deb文件
命令:dpkg -b directory [filename]
18)显示一个Deb文件的目录
命令:dpkg -c filename
19)显示一个Deb的说明
命令:dpkg -I filename [control-file]
20)搜索Deb包
命令:dpkg -l package-name-pattern
示例:dpkg -I vim
21)显示所有已经安装的Deb包,同时显示版本号以及简短说明
命令:dpkg -l
22)报告指定包的状态信息
命令:dpkg -s package-name
示例:dpkg -s ssh
23)显示一个包安装到系统里面的文件目录信息
命令:dpkg -L package-Name
示例:dpkg -L apache2
24)搜索指定包里面的文件(模糊查询)
命令:dpkg -S filename-search-pattern
25)显示包的具体信息
命令:dpkg -p package-name
示例:dpkg -p cacti

猜你喜欢

转载自www.linuxidc.com/Linux/2016-12/138344.htm