软件包管理

rpm是一个软件包管理器,是用来管理软件包的,软件包管理器的核心功能制作软件包;安装、卸载、升级、查询、校验。

包的组成分为:主包(bind-9.7.1-1.el5.i586.rpm)、子包(bind-libs-9.7.1-1.el5.i586.rpmbind-utils-9.7.1-1.el5.i586.rpm),其中bind是包名;9.7.1是版本号。

rpm包的安装:

rpm -i bind-9.7.1-1.el5.i586.rpm即安装bind-9.7.1-1.el5.i586.rpm

    -h: #显示进度;每个#表示2%; -v: 显示详细过程;-vv: 更详细的过程

有的软件包安装需要有依赖关系,所以安装不上,那么这就得手动解决他们的依赖关系。

rpm --nodeps: 忽略依赖关系;

rpm --replacepkgs: 重新安装,替换原有安装;

rpm --force: 强行安装,可以实现重装或降级;

 

软件包管理_软件包管理

rpm包的查询:

rpm -q zip: 查询指定的包是否已经安装;zip为包名;

rpm -qa : 查询已经安装的所有包zip为包名;;

rpm -qi zip: 查询指定包的说明信息;zip为包名;

rpm -ql zip: 查询指定包安装后生成的文件列表;zip为包名;

rpm -qc zip:查询指定包安装的配置文件;zip为包名;

rpm -qd zip: 查询指定包安装的帮助文件;zip为包名;

rpm -q --scripts zip: 查询指定包中包含的脚本

rpm -qf /etc/inittab 查询指定的文件是由哪个rpm包安装生成的;

 

软件包管理_软件包管理_02

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;就用命令:rpm -qpi bind-9.7.1-1.el5.i586.rpmbind-9.7.1-1.el5.i586.rpm 是指定的安装包。

rpm包的升级:

rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE  ;(/PATH/TO/NEW_PACKAGE_FILE)指的是新的版本的安装包,如果装有老版本的,则升级;否则,则安装;

rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE;(/PATH/TO/NEW_PACKAGE_FILE)指的是新的版本的安装包,如果装有老版本的,则升级;否则,退出;

 --oldpackage :表示为降级

rpm包的卸载:

rpm -e (或者--nodeps)  zip zip软件包包名

rpm包的校验:

rpm -V zip zip软件包包名

rpm  --rebuilddb: 重建数据库,一定会重新建立;

rpm  --initdb:初始化数据库,没有才建立,有就不用建立;

检验来源合法性,及软件包完整性;

首先要导入密钥文件:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release;然后在执行rpm -K bind-9.7.1-1.el5.i586.rpmbind-9.7.1-1.el5.i586.rpm为自己指定的软件安装包。

yum 仓库中的元数据文件:

primary.xml.gz

     所有rpm包的列表、依赖的关系、每个rpm安装生成的文件列表

filelists.xml.gz

     当前仓库中所有rpm包的所有文件列表

other.xml.gz

     额外信息,rpm包的修改日志

repomd.xml

     记录的是上面三个文件的时间戳和校验和

yum的配置文件:/etc/yum.confg

如何为yum定义repo文件

[Repo_ID] 

name=Description

baseurl=       这里是repo库所在的访问路径,可以为三种方式

        ftp:// 格式

    http://格式

    file:///本地文件路径

enabled={1|0} 是否允许使用 1表示使用,0表示禁用

gpgcheck={1|0}是否引用gpg来验证软件包来源的合法性信息完整性,如果禁用,后面的gpgkey就可以省略否则后面的gpgkey文件的路径一定不能省略。

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

yum list:列出你所配置的yum仓库中所有的软件包 

yum clean: 清理缓存

yum repolist: 显示repo列表及其简要信息

yum install packagename: 安装软件包,packagename为软件包的包名

yum update : 升级

     update_to : 升级为指定版本

remove|erase:卸载

yum remove php53-pda, 卸载php53-pdaphp53-pda表示包名

yum provides|whatprovides: 查看指定的文件或特性是由哪个包安装生成的

    如:yum provides /etc/inittab