标签:rpm
一、RPM简介
RPM 是RPM is Package Manager(RPM软件包管理器)的缩写,实现在Linux环境上安装、卸载各类软件,均以.rpm为后缀结尾。
二、rpm文件的命名格式
appname-VERSION-RELEASE.ARCH.rpm
(1)appname:包名
(2)VERSION:
major:主版本号
minor:次版本号
release:发行号
(3)RELEASE:包自身的修订号,有时候还会包含适用于的OS信息,比如bash-4.3.2-2.centos6.x86_64.rpm
ARCH:适用的平台
x86:i386,i486,i586,i686,
x86_64:x86_64,amd6464
powerpc:ppc
noarch:跟平台无关
例:bash-4.3.2-2.centos.x86_64.rpm
对应包名:bash,版本:4.3.2 适用系统:centos ,适用平台:x86_64
三、rpm包的获取途径
1、系统的发行光盘镜像或官方站点(或站点镜像服务器)
附:光盘挂载方法
(1)mkdir /media/cdrom
(2)mount -r /dev/cdrom /media/cdrom或mount -o ro -t iso9660 /dev/cdrom /media/cdrom
2、程序包的官方站点
3、第三方组织:epel、dpkg
4、搜索引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
四、通过rpm命令实现rpm包的安装、卸载、升级、校验、查询等功用
1、安装
格式:rpm {-i | --install} [install -options] PACKAGE_FILE...
选项:-h:hash,以#来表示安装进度 (1个#代表2%的进度)
-v,--verbose :显示安装过程中的详细信息
--test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等
--nodeps:忽略依赖关系(伴随副作用:能安装成功,但未必能成功运行)
安装时常用的组合:-ivh
以安装zsh为例:
[root@www Packages]# rpm -ivh zsh-4.3.10-7.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:zsh ########################################### [100%]
2、rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
-U:升级或安装
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-F:升级
组合:-Uvh|-Fvh
注意:一定不要对内核执行升级操作,Linux允许多内核共存,所以,可知直接安装多个不同版本内核
如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置文件,而把新版本的配置文件重命名(加后缀 .rpmnew)
--oldpackage:降级到旧版本 rpm -Uvh --oldpackage zsh-4.3.10-7.el6.x86_64.rpm
3、卸载:移除已经安装的程序包
格式:rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
简单用法:rpm -e PACKAGE_NAME
--nodeps:忽略依赖关系
--test :测试卸载,dry-run模式
--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载之
注意:如果程序包的配置文件安装后层被修改,卸载时,此文件通常不会被删除,而是被重命名(加后缀.rpmsave)后留存
4、查询:查询某包是否已经安装,以及检查安装的所有包,还可以查看某包的详细信息
格式:rpm {-q|--query} [select-options] [query-options]
[select-option]:
(1)查询某包或某些包是否安装:rpm -q PACKAGE_NAME
[root@www Packages]# rpm -q zsh
zsh-4.3.10-7.el6.x86_64
(2)查询已经安装的所有包: rpm -qa
(3)查询某文件是由哪个包安装生成 rpm -qf /PATH/TO/SOMEFILE
[root@www Packages]# rpm -qf /etc/fstab
setup-2.8.14-20.el6_4.1.noarch
(4)查询尚未安装的包文件的相关信息:rpm -qpi PACKAGE_FILE
[query-option]:查询选项
(1)查询某包的简要说明信息 :(i:information) rpm -qi PACKAGE_NAME
(2)查询某包安装生成的文件列表 :rpm -ql PACKAGE_NAME(直接跟包名)
#rpm -ql zh
(3)查询某包安装生成的所有配置文件: rpm -qc PACKAGE_NAME
# rpm -qc zsh
(4)查询某包安装生成的所有帮助文件:rpm -qd PACKAGE_NAME
# rpm -qd zsh
(5)查询某包制作时版本变化的changelog信息: rpm -q --changelog PACKAGE_NAME
# rpm -q --changelog zsh
(6)查询某包提供的capabilities (能力): rpm -q --proviedes PACKAGE_NAME
# rpm -q --provides zsh
(7)查询某包所依赖的capabilities:rpm -q --requires PACKAGE_NAME
(8)查询某包安装或卸载时执行脚本: rpm -q --scripts PACKAGE_NAMA
此处脚本有四类:
preinstall:安装过程开始之前执行的脚本
postinstall:安装过程完成之后执行的脚本
preuninstall:卸载开始之前执行的脚本
postuninstall:卸载过程完成之后执行的脚本
(9)校验:查询包安装之后生成的文件是否发生了改变
rpm {-V|--verify} [select-options] [verify-options]
常见用法:rpm -V PACKAGE_NAME
S file Size differs 文件大小
M Mode differs (includes permissions and file type) 权限
5 digest (formerly MD5 sum) differs MD5校验
D Device major/minor number mismatch 主设备/次设备号发生改变
L readLink(2) path mismatch 路径不匹配
U User ownership differs 属主
G Group ownership differs 属组
T mTime differs 最近一次修改
P caPabilities differ
标签:rpm
原文地址:http://fanjie.blog.51cto.com/3791578/1631383