Linux 常用命令-rpm, yum

404 阅读4分钟
  1. RPM 介绍:
    RPM 是以一种数据库记录的方式将你所需要的软件安装到你的 Linux 系统的一套管理机制.

    RPM 事先将你要安装的软件进行编译, 并打包成 RPM 机制的包装文件, 通过包装号的软件里头默认的数据库记录, 记录这个软件要安装的时候必须具备的属性软件. 当在 Linux 主机上找不到对应的依赖时, 则不予安装, 若满足依赖, 则进行安装, 将该软件的信息写入 RPM 的数据库中, 以便未来的查询, 验证和反安装.

  2. YUM 介绍:
    YUM 是为了解决 RPM 安装软件时的依赖问题. 厂商先将释放出的软件放置到 YUM 服务器内; 分析这些软件的依赖关系, 将软件内的记录信息写下来; 将这些信息分析后形成软件相关的依赖清单. 这些依赖清单和软件所在的本机或网络位置称为软件仓库.

  3. rpm 命令:

    • 安装软件: rpm -ivh packageName
      • 示例: rpm -ivh a.rpm
    • 更新软件: rpm -Uvh packageName rpm-Fvh packName
    • -Uvh: 后面接的软件即使没有安装过, 则系统给予直接安装; 若后面接的软件有安装过旧版, 则系统自动更新置新版.
    • -Fvh: 后面接的软件没有安装过, 则不会被安装; 若安装过, 则更新.
    • 查询软件:
      • -q: 仅查询, 后面接的软件名称是否有安装.
      • -qa: 列出所有已安装的软件名称.
      • -qi: 列出该软件的详细信息.
      • -ql: 列出该软件所有的文件与目录所在完整文件名.
      • -qc: 列出该软件的所有配置文档.
      • -qd: 列出该软件的所有说明文档.
      • -qR: 列出与该软件相关的依赖软件.
      • -qf: 找出该文件属于哪一个已安装的文件.
      • -q --scripts: 列出是否有安装后需要执行的脚本.
      • -qp: 后接 rmp 文件名. 查找某个 rpm 文件内的信息, 而并非已安装的软件信息.
      • 示例:
        • 查询软件是否安装: rpm -q logrotate
        • 查询软件的目录与文件: rpm -ql logrotate
        • 查询软件说明数据: rpm -qi logrotate
        • 查询软件的配置文件与说明文档: rpm -qc logrotate
        • 查询软件安装所需依赖: rpm -qR logrotate
        • 查询文件由哪个软件提供: rpm -qf /bin/sh
    • RPM 验证与数码签章: 验证的功能主要在于提供系统管理员一个有用的管理机制. 作用的方式是使用/var/lib/rpm下面的数据库内容来比对目前 Linux 系统的环境下的所有软件. 如果你不小心误删或者修改到一个软件的文件内容, 可以验证一个下原本的文件系统.
      • -V: 后接软件名称, 若该软件所含的文件被更动过, 才会列出来.
      • -Va: 列出系统上所有被更动过的文件.
      • -Vp: 后接 RPM 包名, 列出该软件被更动过的文件.
      • -Vf: 列出某个文件是否被更动过.
      • 示例:
        • 查看软件是否更动: rpm -V logrotate
        • 查看文件是否更动: rpm -Vf /etc/crontab
        • 更动输出信息:
          • S(file size differs): 文件容量的大小是否改变.
          • M(mode differs): 文件的类型或文件的权限是否改变.
          • 5(MD5 sum differs): MD5 这一种指纹码的内容已经不同.
          • D(device major/minor number mis-match): 设备的主/次码已经改变
          • L(readLink path mis-match): 链接路径改变.
          • U(user ownership differs): 文件内所属人已经改变.
          • G(group ownership differs): 文件所属的群组已经改变.
          • T(create time differs): 创建时间已经改变.
          • P(capabilities differs): 功能已经改变.
    • 删除文件:
      删除文件的过程一定要由最上层往下删除
      • 示例: rpm -e pam
    • 重建数据库:
      RPM 数据库 /var/lib/rpm/ 内的文件破损可以使用命令重建数据库:
      • 示例: rpm -rebuilddb
  4. yum 命令:

    • 查询功能:
      • search: 搜寻某个软件名称或者是描述的重要关键字.
      • list: 列出当前 yum 所管理的所有软件的名称与版本.
      • info: 列出软件信息.
      • provides: 根据文件搜寻软件.
    • 安装和升级:
      • install: 后接要安装的软件.
      • update: 后接要升级的软件.
    • 移除:
      • remove: 后接软件名
    • yum 配置文件: CentOS-Base.repo 内容如下:
      • [base]: 软件库名称.
      • name: 说明库的意义.
      • mirrorlist=: 镜像地址.
      • baseurl=: 软件库实际的地址.
      • enable=1: 启用该软件库.
      • gpgcheck=1:是否查阅 RPM 文件内的数码签章.
      • gpgkey=: 数码签章公钥位置.
      • 清除本地数据库: yum clean yum 会事先下载软件库的清单到本机的 /var/cache/yum 里面去. 更换地址后可能导致本地的清单与 yum 服务器清单不同步.
        • packages: 将已下载的软件文件删除.
        • headers: 将下载的软件文件开始删除.
        • all: 将所有软件库数据都删除.
  5. 参考:
    [1] : 鸟哥的Linux私房菜