首页 > 代码库 > rpm包总结

rpm包总结


rpm命令:
 rpm:
  数据库: /var/lib/rpm
 rpmbuild:SRPM:其提供的软件内容并没有被编译,它提供的是代码源,需要自己通过编译。
 
安装的时候RPM与SRPM需要注意的问题
 1、软件安装的环境必须与打包时的环境需求一致或相当;
 2、需要满足软件的依赖属性需求;
 3、反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题,
  则此时需要的步骤、用SRPM
 先将该文件以RPM管理的方式编译,此时SRPM会被编译成为RPM文件;
 然后将编译完成的RPM文件安装到Linux系统中
 
  
RPM的优点
 1、RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰
 2、RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本,可避免文件被错误安装
 3、RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,以便与了解软件
 4、RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证
 
 rpm:
 1、安装(install):
  rpm -i /PATH/TO/PACKAGE_FILE
   -h:以#显示进度:每个#表示2%
   -v:显示详细安装
   -vv:显示更详细的过程
   
  rpm -ivh /PATH/TO/PACKAGE_FILE
      rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
      rpm -ivh http://
   --nodeps:忽略依赖关系
   --replacepkgs:重新安装,替换原有安装;
   --force:强行安装,可以实现重装或降级;
      在没有网络的情况下,想用光盘来安装,那么就需要
       挂载光盘,使用: mount /dev/cdrom /media
       找出文件的实际路径:find /media -name ‘pam-devel*‘
       测试此软件是否有依赖性:rpm -ivh pam-devel... --text
       直接安装:rpm -ivh pam-devel...
       卸载光盘:umount /dev/cdrom
 
 2、查询 (query)
  rpm -q PACKAGE_NAMEPACKAGE_NAME

wKiom1PLlESh0Z5MAAA2_6EYBEc052.jpg 

  rpm -qa:查询已经安装的所有包
  rpm -qi PACKAGE_NAME:查询指定包的说明信息;
  rpm -ql PACKAGE_NAME:查询指定安装包后生成的文件列表;
  rpm -qc PACKAGE_NAME:查新指定包安装的配置文件;
  rpm -qd PACKAGE_NAME:查新指定包安装的配置文件;
  wKioL1PLlZeCf7e_AAH4ed4G900052.jpg  

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

wKiom1PLlKegkrz3AAFYwtD8i0M748.jpg  
  rpm -qf /PATH/TO/SOMEFILE:查新指定的文件是由哪个rpm包安装生成的
  
  如果某rpm包尚未安装,我们需查询器说明信息、安装以后会生成的文件;
  rpm -qpi /PATH/TO/PACKAGE_FILE i软件包的信息
  rpm -qpl /PATH/TO/PACKAGE_FILE l软件包的列表
  
     rpm -qa  <==已安装软件
     rpm -q[licdR]  <==已安装的软件
     rpm -qf 存在于系统上的某个文件名
     rpm -qp[licdR]未安装的某个文件名

以上内容均为查询选项,这里就不一一演示了。


 3、升级
  rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的则升级,否则安装
  rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的则升级,否则退出
   --oldpackage:降级
   
 4、卸载
  rpm -e PACKAGE_NAME 
   --nodeps
     找出与pam有关的软件名称,并删除
      rpm -qa | grep pam
      rpm -e pam
 5、校验
  rpm -V PACKAGE_NAME检查文件是不是被非法改变过的
  显示出的8个字段
字段1:S--表示大小
字段2:M--文件类型权限
字段3:5--MD5
字段4:D--设备的主设备号与次设备号不一直
字段5:Lreadlink---路径
字段6:U--属主
字段7:G--属组
字段8:T--最近一次的修改时间


 6、重建数据库
  rpm
   --rebuilddb:重建数据库,一定会重新建立;
   --initdb:初始化数据库,没有才建立,有就不用建立;
 
 7、检验来源合法性,及软件包完整性;
  加密类型:
   对称:加密解密使用同一对密钥
   公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来并公开出去
   单向:
   /etc/pki/rpm-gpg/
    rpm -K /PATH/TO/PACKAGE_FILE
    dsa,gpg:验证来源合法性,也即验证签名:可以使用 --nosignature略过此项
    sha1,md5:验证软件包完整性;可以使用--nodigest,略过此项
  
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件


rpm包总结