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

    普通 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*
    libwine hold
    libwine-alsa hold
    libwine-arts hold
    libwine-dev hold
    libwine-nas hold
    libwine-print hold
    libwine-twain hold
    wine hold
    wine+ hold
    wine-doc hold
    wine-utils hold

    例如:
    大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:
    方法一:
    Debian:~# echo “gaim hold” | dpkg –set-selections
    然后用下面命令检查一下:
    Debian:~# dpkg –get-selections “gaim”
    gaim hold
    现在的状态标志是 hold,就不能被升级了。

    如果想恢复怎么办呢?
    Debian:~# echo “gaim install” | dpkg –set-selections
    Debian:~# dpkg –get-selections “gaim”
    gaim install
    这时状态标志又被重置为 install,可以继续升级了。

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

    有时你会发现有的软件状态标志是 purge,不要奇怪。
    如:事先已经安装了 amsn,然后把它卸了。
    apt-get remove –purge amsn
    那么状态标志就从 install 变成 purge。

    方法二:
    在/etc/apt 下手动建一个 preferences 文件
    内容:
    Package: gaim
    Pin: version 0.58*
    保存

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