RPM软件包的文件名由四个元素组成,再加上.rpm后缀名:name-version-release.architecture
例如 : image.png

  • NAME:是描述软件包名字(coreutils)
  • VERSION:是原始软件包的版本号(8.30)
  • RELEASE:是基于该版本的软件包的发行版号,由软件打包商提供(4.el8)
  • ARCH:是编译的软件包运行的处理器架构,noarch表示此软件包的内容不限定架构(arch64表示是64位的ARM架构)

    yum仓库配置

  • yum仓库配置文件/etc/yum.repos.d/ *.repo ,包含以下内容:

    1. [repo-name]
    2. name=A nice description
    3. baseurl=http://yourserver.com/path/to/repo
    4. enabled=1
    5. gpgcheck=1
    6. gpgkey=file:///filename
  • 测试:

    1. yum clean all
    2. yum makecache

    yum安装移除和升级软件包

  • 安装软件包

    • yum install package… 安装软件包
    • yum group install packagegroup… 安装包组
    • yum reinstall package… 重新安装软件包
  • 移除软件包
    • yum remove package… 移除软件包
    • yum group remove packagegroup… 移除包组
  • 升级软件包

    • yum update [package…]

      yum查询

  • 列出软件包的信息:

    • yum repolist all 列出所有的仓库信息
    • yum list [all] 列出仓库里面所有的软件包
    • yum list available|updates|installed 分别列出未安装的|待更新的|已经安装的软件包
    • yum info package 查看软件包的信息
    • yum group info packagegroup查看包组的信息
    • yum group list [hidden] 列出所有的包组
  • 搜索文件和软件包:
    • yum provides filename 查找文件来自哪个包
    • yum search keyword 查找与keyward相关的软件包
  • 所有安装和删除事务的日志记录在/var/log/dnf.rpm.log中
  • 查询软件包的历史记录:

    • yum history 查询yum的执行记录
    • yum history list 包名 历史记录中搜索某个软件包
    • yum history info 4 查询第4条历史记录的信息
    • yum history undo 7 撤销事务

      创建私有的yum源

  • 将rpm包放在一个目录下面

  • 将该目录通过http或者ftp共享出去
  • 安装createrepo_c软件包,并执行createrepo -v /package_dir

    • 会创建一个 repodata 的子目录
    • 软件包的所有元数据信息都放在 repodata 目录下面

      rpm 安装卸载升级软件包

      常用选项
      1. -i 安装
      2. -v verbose查看详细信息
      3. -h 查看进度条
      4. -e erase移除软件包
      5. -F 升级已经安装过的软件包
      6. -U 升级和安装软件包
      7. --replacepkgs 重新安装,相当于--force
      8. --oldpackage 安装旧版的软件包
      9. --replacefiles 忽略冲突
      10. --nodeps 忽略依赖性关系

      rpm 查询

  • 常用选项

    1. -q:查询软件包是否安装
    2. -qa:查询已经安装过的软件包
    3. -qi:查询软件包的信息
    4. -ql:查询安装该软件包后会生成的文件
    5. -qc:查询软件包的配置文件
    6. -qd:查询软件包的帮助文件
    7. -qf:查找文件来自于哪个软件包
    8. -q --scripts:查询在安装或者删除软件包的时候运行的shell脚本
    9. -q --changelog:查询软件包的变更日志
    10. -qp [-ilcdR --scripts --changelog] rpmfile :查找本地软件包文件的相关信息
  • 可以从rpm软件包中提取文件,而不安装此软件包 ```bash [root@zhouchunwei-6-60 tree]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio -id 177 blocks [root@zhouchunwei-6-60 tree]# ls * tree-1.6.0-10.el7.x86_64.rpm

usr: bin share [root@zhouchunwei-6-60 tree]#

  1. - 列出软件包里的文件
  2. ```bash
  3. [root@zhouchunwei-6-60 tree]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio -tv
  4. -rwxr-xr-x 1 root root 62768 Jun 10 2014 ./usr/bin/tree
  5. drwxr-xr-x 2 root root 0 Jun 10 2014 ./usr/share/doc/tree-1.6.0
  6. -rw-r--r-- 1 root root 18009 Aug 13 2004 ./usr/share/doc/tree-1.6.0/LICENSE
  7. -rw-r--r-- 1 root root 4628 Jun 24 2011 ./usr/share/doc/tree-1.6.0/README
  8. -rw-r--r-- 1 root root 4100 Jun 24 2011 ./usr/share/man/man1/tree.1.gz
  9. 177 blocks
  10. [root@zhouchunwei-6-60 tree]#

rpm 校验软件包

  • 对已安装的包进行文件校验
    • rpm -V package 检查某个已安装软件包的文件
    • rpm -Vp rpmfile 检查某个rpmfile软件包的文件
    • rpm -Va 检查系统所有软件包的文件
  • 在安装包之前进行签名校验
    • rpm —import RPM-GPG-KEY-redhat-release 用rpm导入秘钥
    • rpm -qa gpg-pubkey 查询已经安装的秘钥
    • rpm -e gpg-pubkey 卸载已经安装的秘钥
    • rpm -K rpmfile 用rpm手动验证文件的完整性

      模块流(未更新…)