openEuler 知:版本比较

前言

本文的“版本比较”主要是指比较 openEuler 操作系统两个版本之间的 rpm 包的版本差异,只比较版本差异,不比较文件内容的差异。

比较版本主要用于分析两个操作系统版本之间软件包的版本变化。

工具

oe_diff

工具地址:https://gitee.com/icanpool/shcanpool/blob/master/misc/sh/oe_diff.sh

帮助信息:

[root@localhost canpool]# bash shcanpool/misc/sh/oe_diff.sh -h
diff rpm packages between the two systems based on dnf repository

usage:
    bash oe_diff.sh [-h] [-a REPOSITORY [-a ...]] [-b REPOSITORY [-b ...]] [-u] [-t]

optional arguments:
    -a REPOSITORY  A dnf repository address link (can be specified multiple times)
    -b REPOSITORY  B dnf repository address link (can be specified multiple times)
    -u             the flag that only output difference items
    -t             the flag that rpm name does not contain the dist suffix
    -h             show the help message and exit

examples:
    bash oe_diff.sh -a A_ADDR -b B_ADDR
    bash oe_diff.sh -a A_ADDR1 -a A_ADDR2 -b B_ADDR1 -b B_ADDR2

参数介绍:

  • -a REPOSITORY:A版本操作系统的dnf仓库源地址,可以指定多次-s来指定多个源
  • -b REPOSITORY:B版本操作系统的dnf仓库源地址,可以指定多次-s来指定多个源
  • -u:如果指定该标志,将只输出差异项
  • -t:如果rpm包文件名中没有dist后缀,如:oe2203sp1、oe2403,需要指定该标志

备注:

  • 如果指定的dnf仓库源中包含二进制rpm、源rpm、调试rpm,工具将分组比较,先比较所有二进制rpm、再比较所有源rpm、最后比较所有调试rpm。

示例:

  • 比较 openEuler-22.03-LTS-SP1 和 openEuler-22.03-LTS-SP3 两个版本之间 src.rpm 的差异
bash shcanpool/misc/sh/oe_diff.sh -a https://mirrors.jxust.edu.cn/openeuler/openEuler-22.03-LTS-SP1/source/ -a https://mirrors.jxust.edu.cn/openeuler/openEuler-22.03-LTS-SP1/update/source/ -b https://mirrors.jxust.edu.cn/openeuler/openEuler-22.03-LTS-SP3/source/ -b https://mirrors.jxust.edu.cn/openeuler/openEuler-22.03-LTS-SP3/update/source/ -u | tee oe2203sp1_diff_oe2203sp3.csv

在这里插入图片描述

比较结果分为多个字段,说明如下:

  • type:指示rpm的类型,分为:binary,source,debug
  • pkg_name:指示软件包名称
  • op:指示变更操作,分为:equal updated degraded added removed unknown
    • equal:相等
    • updated:升级
    • degraded:降级(根据版本比较结果判断是降级,如果只是release号降低,不一定代表版本降级,可能是gitee的两个版本分支修改记录不一致,但功能一致)
    • added:新增
    • removed:删除(废弃/清退)
    • unknown:未知(版本未比较出大小)
  • version_change:版本变化路线,A -> B
  • a_rpm_name:A版本操作系统中的rpm包文件名
  • a_ver_full:A版本操作系统的rpm包的完整版本号
  • b_rpm_name:B版本操作系统中的rpm包文件名
  • b_ver_full:B版本操作系统的rpm包的完整版本号

备注:比较之后发现存在降级的情况,其中mariadb确实存在版本号bug
在这里插入图片描述

oepkg

工具地址:https://gitee.com/icanpool/shcanpool/blob/master/misc/py/oepkg.py

帮助信息:

[root@localhost canpool]# python3 shcanpool/misc/py/oepkg.py cmp -h
usage: oepkg.py compare [-h] [--once] file1 file2

positional arguments:
  file1       rpm filename list file1
  file2       rpm filename list file2

optional arguments:
  -h, --help  show this help message and exit
  --once      remove duplicates

参数介绍:

  • -file1:A版本操作系统的rpm包列表文件(已经过升序排列)
  • -file2:B版本操作系统的rpm包列表文件(已经过升序排列)
  • –once:如果指定该标志,将只输出差异项

备注:

  • 工具只负责对比,不识别rpm包是二进制rpm、源rpm还是调试rpm包,由用户准备相关rpm列表文件
  • 只要有两份rpm列表文件便可以对比,不限于 openEuler 两个版本之间对比,也可以 CentOS 和 openEuler 对比
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值