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 对比

相关推荐

  1. 版本比较工具类VersionUtil

    2024-07-20 14:42:06       42 阅读
  2. Leetcode 165. 比较版本

    2024-07-20 14:42:06       33 阅读
  3. 力扣-比较版本

    2024-07-20 14:42:06       35 阅读
  4. 【leetcode热题】比较版本

    2024-07-20 14:42:06       36 阅读
  5. Python使用distutils.version的StrictVersion比较版本大小

    2024-07-20 14:42:06       17 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 14:42:06       64 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 14:42:06       67 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 14:42:06       54 阅读
  4. Python语言-面向对象

    2024-07-20 14:42:06       66 阅读

热门阅读

  1. 12、实现基于共享内存的二叉树set(续)

    2024-07-20 14:42:06       24 阅读
  2. ES6-11(第一部分)

    2024-07-20 14:42:06       21 阅读
  3. STM32+USART串口(1)

    2024-07-20 14:42:06       18 阅读
  4. #陕西大桥垮塌仍有20车30余人失联#

    2024-07-20 14:42:06       23 阅读
  5. Cookies和session区别

    2024-07-20 14:42:06       19 阅读
  6. BM20 数组中的逆序对

    2024-07-20 14:42:06       18 阅读
  7. SpringBoot使用Jasypt加密

    2024-07-20 14:42:06       19 阅读
  8. Linux 之 awk命令详解

    2024-07-20 14:42:06       21 阅读
  9. 电机线电流与转差率曲线理论推导

    2024-07-20 14:42:06       19 阅读