dpkg, apt 使用

#资料来源:
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

This entry was posted in GNU/Linux and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *