Linux 命令学习系列之dpkg命令详解

加菲猫园 2011-07-08

普通 dpkg 用法

dpkg-i安装一个Debian包裹文件,如你手动下载的文件。

dpkg-c列出的内容。

dpkg-I从中提取包裹信息。

dpkg-r移除一个已安装的包裹。

dpkg-L列出安装的所有文件清单。同时请看dpkg-c来检查一个.deb文件的内容。

dpkg-P

完全清除一个已安装的包裹。和remove不同的是,remove只是删掉数据和可执行文件,purge另外还删除所有的配制文件。

dpkg-s

显示已安装包裹的信息。同时请看apt-cache显示Debian存档中的包裹信息,以及dpkg-I来显示从一个.deb文件中提取的包裹信息。

dpkg-reconfigure

重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:dpkg-reconfigure –frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)

echo ” hold” | dpkg –set-selections 设置的状态为 hlod (命令行方式)dpkg –get-selections “” 取得的当前状态 (命令行方式)

支持通配符,如:

Debian:~#dpkg–get-selections*wine*

libwinehold

libwine-alsahold

libwine-artshold

libwine-devhold

libwine-nashold

libwine-printhold

libwine-twainhold

winehold

winehold

wine-dochold

wine-utils hold

例如:

大家现在用的都是gaim-0.58QQ-plugin,为了防止gaim被升级,我们可以采用如下方法:

方法一:

Debian:~#echo“gaimhold”|dpkg–set-selections

然后用下面命令检查一下:

Debian:~#dpkg–get-selections“gaim”

gaimhold

现在的状态标志是 hold,就不能被升级了。

如果想恢复怎么办呢?

Debian:~#echo“gaiminstall”|dpkg–set-selections

Debian:~#dpkg–get-selections“gaim”

gaiminstall

这时状态标志又被重置为 install,可以继续升级了。

同志们会问,哪个这些状态标志都写在哪个文件中呢?在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold。

有时你会发现有的软件状态标志是 purge,不要奇怪。

如:事先已经安装了amsn,然后把它卸了。

apt-getremove–purgeamsn

那么状态标志就从 install 变成 purge。

方法二:

在/etc/apt下手动建一个preferences文件

内容:

Package:gaim

Pin:version0.58*

保存

dpkg -S在包裹数据库中查找 ,并告诉你哪个包裹包含了这个文件。(注:查找的是事先已经安装的包裹)

相关推荐