#资料来源:
http://debian.linuxsir.org/doc/inthedebianway/Debian_Tools_apt.html
http://debian.linuxsir.org/doc/inthedebianway/Debian_Tools_dpkg.html
如果仅想了解某软件包的与哪些软件包关联, 可运行:
#apt-cache depends mailx
查询哪些包依赖于mysql-server
#apt-cache rdepends mysql-server
如果要将这两种查询信息合并到一起, 则可以使用:
#apt-cache showpkg mysql-server
获得某个软件包的详细信息
#apt-cache show mysql-server
检查软件包的状态
#apt-cache policy packagename
下载软件的源代码
#apt-get source packagename
注: sources.list 中应该有 deb-src 源
安装软件包源码的同时, 安装其编译环境
#apt-get build-dep packagename
注: sources.list 中应该有 deb-src 源
如果在安装过程中出现中断, 然后你发现该软件包既不能重装又不能删除, 试试下面两个命令:
# apt-get -f install
# dpkg –configure -a
重新配置一个软件
#dpkg –configure
或
#dpkg-reconfigure pkgname
列出软件包的内容:
#dpkg-deb -c nano_1.3.10-2_i386.deb
查看软件包的信息
#dpkg-deb -I nano_1.3.10-2_i386.deb
#dpkg -i pkgname
安装一个deb包过程可分解为:
#dpkg –unpack
#dpkg –configure
解包可能包括一下步骤:
* 将控制文件解压到临时目录.
* 运行 preinst(如果有的话). 通常为停止相关服务.
* 解压配置文件到 /etc 目录, 并添加.dpkg-new 后缀, 以防止冲突.
* 解压 data.tar.gz 到系统根目录,(–root=dir).
* 将控制文件解压到 /var/lib/dpkg/info 目录并添加软件名前缀. 对数据库进行更新.
* 数据库中将软件包的状态设置为"unpacked".
仅仅解包, 并不能确保软件可以正常运行
配置过程可能包括一下步骤:
* 询问对配置文件的处理方法, 覆盖当前版本, 还是不做处理.(当软件升级时会碰到这种情况)
* 运行 postinst 脚本
* 将软件包标记为 "installed"
如果想再次修改配置选项, 可以运行:
#dpkg-reconfigure nano
删除
#dpkg -r nano
* 首先运行 prerm 脚本(如果有的话).
* 然后, 保留配置文件, 其他文件全部删除.
* 删除 /var/lib/dpkg/info 目录下软件包的所有配置文件, 保留postrm和list文件.
* 最后, dpkg 在数据库中将软件状态修改为删除.
清除
#dpkg -P nano
* 删除所有的文件. 所有的文件都被解除了(从系统中删除了).
* 运行postrm脚本.如果还存在,运行postrm脚本.
* 删除 postrm 和 list 文件.保留的两个文件,从系统中解除postfix.postrm和postfix.files.
* 在dpkg的数据库中将软件包标记为未安装
dpkg vs rpm
* 列出系统中安装的软件包
o rpm -qa
o dpkg –list
* 列出软件包信息
o rpm -qi pkgname
o dpkg –status pkgname
* 列出一个包所安装的文件
o rpm -ql pkgname
o dpkg –listfiles pkgname
* 列出本地包文件的信息
o rpm -qpi file.rpm
o dpkg –info file.deb
* 列出本地包文件所含文件
o rpm -qpl file.rpm
o dpkg –contents file.deb
* 安装本地包
o rpm -i file.rpm
o dpkg –install file.deb
* 从系统中清除包
o rpm -E pkgname
o dpkg –purge pkgname
* 查询文件归属
o rpm -qf file
o dpkg –search file