软件包的安装
     RPM:  RPM Package Manager
         使用rpm安装软件包时,会出现软件包以来关系,甚至会循环依赖
软件包
 二进制文件 /bin /sbin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin
 配置文件(文本)
 库文件(二进制)
 文档 (文本)
源代码包
 软件包的安装方式
  1.手动变异安装源代码
  2.二进制格式的软件包
    解压可直接使用
rpm 管理软件包 (www.rpmfind.net)
  一般系统安装文件中提供的RPM包在一下4个目录中
   1.Server
   2.VT (Virtualization Technology)
   3.Cluster
   4.ClusterStorge
rpm包的文件名格式
  包名-Version-Release.arch.rpm
   Version包括Major(主版本号) Minor(此版本号)Modify(修正号)
   Release:发行号
   arch:平台 例如 i386
使用rpm命令管理软件包
1.安装
   rpm [options] 完整路径(最后带的文件名而不是包名)
      -i    install
      -v    显示信息 -vv显示更详尽的信息 -vvv显示更加详细的信息 最多支持3个v
      -h    打印#以显示进度条, #代表2%
      -ivh   安装是通常-ivh一起使用
      --nodeps 忽略依赖关系
      --force 强行安装
2.卸载
   rpm  [options] 包名
      -e    卸载
      --nodeps 忽略依赖关系
3.升级
  rpm [options] 路径(最后带的是文件名而非包名)
     -U   若老版本存在,则升级安装
         若老版本不存在,则完全安装
     -F   老版本必须存在,才能升级
     --force 强行升级
     -Uvh,-Fvh 通常一同使用
    Attention:内核软件包只能安装,不要升级
4.查询
  rpm [options] 包名
     -q   查询
     -qa   查询所有安装的软件包
     -qa     *bash* 支持globbing通配 *?
     -qi   查询详细信息关于某个包
     -ql   查询安装软件包的所有文件
     -qc   只查询安装的配置文件
     -qd   只显示安装的文档
     -q --scripts
         查看安装软件包,执行了怎样的脚本
     -qf   文件
         查询这个文件来自哪个软件包
     -q --changelog
         查询每一次包作者改进软件包都做了些什么
    Attention:以上均查询的是已安装的软件包信息,如果需要查询未安装软件包的对应信息,只需在选项中使用-p 例如-qip 而后加上完整的路径
         和文件名
5.校验
  rpm [options] 包名(已安装)
    -V     检验
  显示的第一列信息共8位,........
    1.s size大小
    2.m mode 文件权限 文件类型
    3.5 MD5算法 摘要文件并加密的算法 用来检测文件是否改变过
    4.d 主设备号和此设备号
    5.l redlink 路径不匹配
    6.u 文件属主发生改变
    7.g 文件属组发生改变
    8.T 最进一次修改时间发生改变
6.rpm数据库
 使用rpm -q 查询来的信息均依赖rpm数据库,一旦损坏,则会带来极大影响
 重建rpm数据库
 #rpm --initdb 初始化数据库,如果原来存在,则不覆盖
 #rpm --rebluiddb 重建数据库,如果原来存在,则覆盖
7.公钥私钥
 私钥加密,公钥解密
 签名:用私钥加密MD5值
 md5 128bit公钥加密 sha1 160bit公钥加密
     验证软件包的完整性,是否被人篡改过
 dsa gpg 验证签名
     验证签名,具有不可抵赖性
  1.导入公钥
     rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  2.验证
    rpm -k [options] 完整路径(最后带文件名而不是包名)
        --nodigest 禁用sha1 md5等完整性验证
        --nosignature 禁用dsa gpg等签名验证