通常我们通过apt-get或aptitude安装了包以后,可能想知道包内的某些文件的安装路径,比如apache2的配置文件在哪儿啊,等等。
今天我安装了 libpam-mysql,我想知道pam_mysql.so这个文件的位置,该怎么办呢?下面的命令可以帮助我们知道这个包安装了什么东西,位置在哪儿。
安装前根据.deb看
$ dpkg -c xxx.deb
安装后根据包名来查看
$ dpkg -L libpam-mysql
如果你下载了一个包想看看它的信息,可以这样:
$ dpkg --info xxxxx.deb
如果这个包是源里的包,你可以这样看它的信息:
$aptitude show <包名>
或者:
$ apt-cache show <包名>
apt-cache show
显示 的完整的描述。
apt-cache showpkg
显示 许多细节,以及和其它包裹的关系。
dpkg -I
从 中提取包裹信息。
dpkg -r
移除一个已安装的包裹。
dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
dpkg -L
列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。
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。