软件包之RPM包管理_target

一.rpm包的命令格式

源程序:name-version.tar.{gz|bz2|xz}

version:major.minor.release

rpm包:name-version-release.arch.rpm

release:通常只包含发行号和os平台

el6:redhat enterprise linux

CentOS5

arch:

x86_64

i386,i586

ppc

分包:把一个复制的程序打包制作成多个rpm格式

 

二.来源合法性

源程序:通过md5或sha1校验码验证

rpm包:发行商光盘

验证包完整性:校验码

验证来源合法性:公钥加密算法

三.获取rpm的途径

1.发行商光盘或站点服务器

        获取rpm的途径:
       1、发行商的光盘或站点服务器
              CentOS:
           http://mirrors.163.com
           http://mirrors.sohu.com
         2、rpmfind
               http://rpmfind.net
         3、rpmpbone
               http://rpm.pbone.net
     注意:
       1、发行商。发行光盘中的包,需要升级时,官方释放出升级包
       2、Fedora EPEL

四.安装RPM包

rpm –ivh package_name //-i 安装 –v 显示安装信息 –h hash以#显示安装进度

软件包之RPM包管理_软件包_02

rpm –ivh package_name --nodeps //忽略依赖关系

软件包之RPM包管理_target_03

rpm –ivh package_name –replacepkgs //重新安装

软件包之RPM包管理_target_04

注:原来的配置文件不会被覆盖,新安装的配置文件将会重命名为以.rpmnew为后缀的文件

 

五.RPM包查询

查询所有已安装的包:
rpm -qa
查询包的描述信息:
rpm -qi package_name

软件包之RPM包管理_border_05

查询某单个包是否已安装

rpm –q package_name

软件包之RPM包管理_target_06

查询安装包生成的文件列表位置

rpm –ql package_name

软件包之RPM包管理_border_07

查询某文件是由哪个包安装生成的

rpm –qf /path/to/file

软件包之RPM包管理_blank_08

查询安装后生成的帮助文档

rpm –qd package_name

软件包之RPM包管理_blank_09

查询安装后生成的配置文件

rpm –qc package_name

软件包之RPM包管理_软件包_10

查询包相关的脚本

rpm –q –scripts package_name

        preinstall 安装前脚本
        postinstall 安装后脚本
        preuninstall 卸载前脚本
        postuninstall 卸载后脚本

软件包之RPM包管理_border_11

查询尚未安装的rpm包文件的相关信息:
           查询安装后会生成的文件列表: rpm -qpl 包名
           查询其简单描述信息:rpm -qpi 包名

软件包之RPM包管理_border_12

软件包之RPM包管理_border_13

六.升级

 

rpm -U:升级或安装
rpm -F:只升级
rpm {-Uvh|-Fvh}/path/to/package_file

--nodeps: 忽略依赖关系
--force:强行安装

软件包之RPM包管理_blank_14

注意:不要对内核执行升级操作;
       多版本内核可以并存,因此,建议执行安装操作


七.校验来源合法性和软件完整性


       包完整行:通过单向加密机制(MD5|sha1)
       来源合法性:通过公钥加密机制(RSA)
    命令:gpg
     rpm -K /path/to/somefile
     rpm --checksig /path/to/package_file
      --nosigeature:不检查来源合法性
      --nodigest:不检查包完整性
  软件包之RPM包管理_blank_15 

导入密钥:
    rpm --import /path/to/gpg-key-file
     导入以后再做验证
数据库
     位置:/var/lib/rpm
     重建:rpm --initdb:初始化
            如果事先不存在一个数据库,则新建之
           rpm --rebuilddb 重建,直接新建数据库,会覆盖原有库