码迷,mamicode.com
首页 > 其他好文 > 详细

RPM程序包管理

时间:2015-04-12 06:52:57      阅读:163      评论:0      收藏:0      [点我收藏+]

标签: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

          -p 可以通查询选项组合使用
技术分享

[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程序包管理

标签:rpm

原文地址:http://fanjie.blog.51cto.com/3791578/1631383

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!