linux软件包管理

rpm包的管理主要包括:安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;rpm包:二进制格式,rpm包由作者下载源程序,编译配置完成后,制作成rpm包
优点:安装使用方便。 缺点:功能缺乏可定制性、软件包依赖现象严重。所以有时候为了定制一些软件功能,则需要编译安装,从而灵活的定制软件包所提供的各种功能。

rpm命名格式:
包:组成部分
 主包:bind-9.7.1-1.el5.i586.rpm
 子包:bind-libs-9.7.1-1.el5.i586.rpm
    bind-utils-9.7.1-1.el5.i586.rpm
包名格式:
 name-version-release.arch.rpm
 bind-major.minor.release-release.arch.rpm

主版本号:重大改进修改
次版本号:某个子功能发生重大变化时修改
发行号:修正了部分bug,调整了一点功能时修改


  bind-9.7.1-1.noarch.rpm //不区分架构


1、安装
rpm -i /PATH/TO/PACKAGE_FILE
 -h: 以#显示进度;每个#表示2%;
 -v: 显示详细过程
 -vv: 更详细的过程
 
rpm -ivh /PATH/TO/PACKAGE_FILE

 --nodeps: 忽略依赖关系;
 --replacepkgs: 重新安装,替换原有安装;
 --force: 强行安装,可以实现重装或降级;
 
2、查询
rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
rpm -qa : 查询已经安装的所有包

rpm -qi PACKAGE_NAME: 查询指定包的说明信息;
rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;
rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;

rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本
 
rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;
 
如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl  查看一件软件包所包含的文件

3、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
 --oldpackage: 降级
 
4、卸载
rpm -e PACKAGE_NAME
 --nodeps  //忽略依赖关系
 
5、校验
 rpm -V PACKAGE_NAME   //查询软件包安装后是否修改过。
 
6、重建rpm数据库,rpm软件包数据库 ls /var/lib/rpm/
//  rpm --rebuilddb :重建数据库,使用已经安装的rpm的首部信息。
        --initdb :初始化数据库,没有则建立,有就不用建立。
  
  
7、检验来源合法性,及软件包完整性;
# ls /etc/pki/rpm-gpg/  //官方提供的公钥。
 RPM-GPG-KEY-redhat-release  //redhat 公钥
 
rpm -K /PAPT/TO/PACKAGE_FILE
 dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
 sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项
 
 
验证rpm包顺序:
1. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件
2.rpm -K 软件包
 

二.yum安装管理软件

rpm包虽然安装使用方便,但是有时候却存在严重的包依赖情况,而yum则能很好的解决这一问题。

yum仓库中的元数据文件:
primary.xml.gz所有RPM包的列表;依赖关系;每个RPM安装生成的文件列表;
filelists.xml.gz当前仓库中所有RPM包的所有文件列表;
other.xml.gz:额外信息,RPM包的修改日志;
repomd.xml:记录的是上面三个文件的时间戳和校验和;//客户端每次都要下载此文件

list: 列表
 支持glob
 all
 available:可用的,仓库中有但尚未安装的
 installed: 已经安装的
 updates: 可用的升级

 

clean: 清理缓存  //使用yum安装软件包时,yum会使用本地缓存目的将元数据文件保存下来,
                  清除缓存就是将已经下载的清除掉,然后重新读取新的元数据文件
 [ packages | headers | metadata | dbcache | all ]
 

repolist: 显示repo列表及其简要信息
 all
 enabled: 默认
 disabled

install: 安装
yum install PACKAGE_NAME

update: 升级
update_to: 升级为指定版本

remove|erase:卸载

info:

provides| whatprovides: 查看指定的文件或特性是由哪个包安装生成的;
 
groupinfo
grouplist
groupinstall
groupremove
groupupdate

 

/media/cdrom/{Server,VT,Cluster,ClusterStorage}


如何创建yum仓库:
createrepo /软件包目录
 

创建本地yum源,在/etc/yum.repos.d/目录下建立扩展名为repo的文件,

[Repo_ID]
name=Description
baseurl=
 ftp://
 http://
 file:///
enabled={1|0}
gpgcheck={1|0}
gpgkey=

你可能感兴趣的:(Linux软件包管理)