Redhat7之rpm

rpm(redhat package manager)

rpm:红帽软件包管理器。
rpm包:是经过GCC编译过的二进制包
rpm包获取:系统安装盘镜像、网站rpmfind.net、某官网特定安装。

  • rpm包格式说明:
    以zsh为例:
ls /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
# 注:系统镜像源已经事先挂载到了/mnt下,所以此命令生效!
zsh -5 0. 2- 28. el7. x86_64.rpm
软件名 主版本号 次版本号 修订 release(第几次发布版本) 操作系统版本(centos7) 软件包是64位包

注意:修订指的是第几次修改bug;而发布仅仅是发布,可能只是对软件参数等做了微调。

  • 基本命令参数:
    • -i 是install的意思, 安装软件包
    • -v 显示附加信息,提供更多详细信息
    • -V 校验,对已经安装的软件进行校验
    • -h --hash 安装时输出####标记
  • 用法:rpm -q(query) 常与下面参数组合使用:
    • -a(all) 查询所有已安装的软件包
    • -f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
    • -i 显示已经安装的rpm软件包信息,后面直接跟包名
    • -l(list) 查询软件包中文件安装的位置
    • -p 查询未安装软件包的相关信息,后面要跟软件的命名
    • -R 查询软件包的依赖性

注意:rpm包有全名和简名之分
全名:一般在安装更新升级时用到
简名:对已安装的包进行操作时。–>他默认去/var/lib/rpm下去搜索。

当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。

  • rpm 安装实例(从本地安装):
rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
cat /etc/shells    #查看下本地有多少种shell
  • rpm安装实例(从网上安装):
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#安装centos epel扩展yum源。 注:epel源是对centos7系统中自带的 base源的扩展。
  • rpm查询:

    • 查询指定包是否安装
      在这里插入图片描述

      rpm -qa   #查询所有已安装的包
      
      rpm -qa | grep vim    #查询所有已安装包中带vim关键字的包
      

      Redhat7之rpm_第1张图片

      • 查询安装包的详细信息及作用,如:
      rpm -qi lrzsz
      
      • 查询未安装包的详细信息
      rpm -qpi /mnt/Packages/php-mysql-5.4.16-42.el7.x86_64.rpm 
      
      • 查看rpm安装后,会生成哪些文件
        Redhat7之rpm_第2张图片

      • 查看包内容是否被修改:

        1. rpm -V包名
        2. rpm -Vf 文件路径
          Redhat7之rpm_第3张图片

        注:如果出现的全是点,表示测试通过
        出现下面的字符代表某测试的失败:
        5 — MD5 校验和是否改变,你也看成文件内容是否改变
        S — 文件长度,大小是否改变
        L — 符号链接,文件路径是否改变
        T — 文件修改日期是否改变
        D — 设备
        U — 用户,文件的属主
        G — 用户组
        M — 模式 (包含许可和文件类型)
        ? — 不可读文件
        再后面的c 文件名,它表示的是文件类型
        c 配置文件
        d 普通文件

        g 不该出现的文件,意思就是这个文件不该被这个包所包含!
        l 授权文件(license file)
        r 描述文件

        • 实例(查看系统中所有的rpm包及其文件是否被串改):

          rpm -Va > rpm_check.txt      #此处将结果进行重定向
          # 注意:检验时参考了 /var/lib/rpm 目录下的rpm 数据库信息!!
          
  • rpm包的卸载

用法:rpm -e(erase) 包名

如:rpm -e zsh

rpm -e --nodeps zsh   #此参数忽略依赖,建议卸载时不要卸载依赖包,最好用yum。
  • rpm包的升级:
    如:
rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#因为升级时会有一些依赖包要解决。 所以最好使用"yum update 包" 来升级。
  • 解决rpm依赖关系:
    如:
    Redhat7之rpm_第4张图片

你可能感兴趣的:(Linux基础操作)