Bug 294 - [CentOS 8.4安全接管]aarch64环境执行secto -f遇到的依赖与系统架构不匹配
Summary: [CentOS 8.4安全接管]aarch64环境执行secto -f遇到的依赖与系统架构不匹配
Status: RESOLVED FIXED
Alias: None
Product: Anolis OS 8
Classification: Anolis OS
Component: OsMigration (show other bugs) OsMigration
Version: 8.4
Hardware: All Linux
: P2-High S2-major
Target Milestone: ---
Assignee: 刘小平
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-10 10:59 UTC by anolislw
Modified: 2022-09-06 10:28 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description anolislw alibaba_cloud_group 2022-01-10 10:59:26 UTC
[问题简述]
在CentOS 8.4-aarch64环境下,做安全接管测试,运行到secto -f遇到需要x86_64架构的libdnf的依赖包

[系统环境]
执行yum update后环境
[root@iZ2ze605b1hht7bf2o4eacZ ~]# uname -r
4.18.0-305.17.1.el8_4.aarch64
[root@iZ2ze605b1hht7bf2o4eacZ ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
[root@iZ2ze605b1hht7bf2o4eacZ ~]# cat /etc/redhat-release
CentOS Linux release 8.5.2111
[root@iZ2ze605b1hht7bf2o4eacZ ~]# cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/boot/vmlinuz-4.18.0-305.17.1.el8_4.aarch64 root=UUID=8d0954af-8153-43b1-a78e-274d87fb5426 ro console=tty0 net.ifnames=0 console=ttyAMA0,115200n8 iommu.passthrough=1  iommu.strict=0 nvme_core.io_timeout=4294967295

[期望结果]
aarch64环境安全接管测试无异常

[实际效果]
[root@iZ2ze605b1hht7bf2o4eacZ ~]# secto -f
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Linux-epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Last metadata expiration check: 2:27:21 ago on Sat 08 Jan 2022 12:17:22 PM CST.
[MIRROR] libdnf-0.63.0-3.0.2.an8.x86_64.rpm: Status code: 404 for https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.x86_64.rpm (IP: 42.81.204.115)
[MIRROR] libdnf-0.63.0-3.0.2.an8.x86_64.rpm: Status code: 404 for https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.x86_64.rpm (IP: 42.81.204.115)
[MIRROR] libdnf-0.63.0-3.0.2.an8.x86_64.rpm: Status code: 404 for https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.x86_64.rpm (IP: 42.81.204.115)
[MIRROR] libdnf-0.63.0-3.0.2.an8.x86_64.rpm: Status code: 404 for https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.x86_64.rpm (IP: 42.81.204.115)
[FAILED] libdnf-0.63.0-3.0.2.an8.x86_64.rpm: Status code: 404 for https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.x86_64.rpm (IP: 42.81.204.115)
Status code: 404 for https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.x86_64.rpm (IP: 42.81.204.115)
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Linux-epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
AnolisOS-Secto-8 - BaseOS                                                                             6.2 MB/s | 6.5 MB     00:01
AnolisOS-Secto-8 - AppStream                                                                          9.3 MB/s | 8.5 MB     00:00
AnolisOS-Secto-8 - PowerTools                                                                         2.4 MB/s | 1.7 MB     00:00
CentOS Linux 8 - AppStream                                                                             51 kB/s | 4.3 kB     00:00
CentOS Linux 8 - BaseOS                                                                               134 kB/s | 3.9 kB     00:00
CentOS Linux 8 - Extras                                                                                20 kB/s | 1.5 kB     00:00
Extra Packages for Enterprise Linux 8 - aarch64                                                        58 kB/s | 4.7 kB     00:00

[出现概率]
必现

[复现步骤]
yum update
reboot
wget https://mirrors.openanolis.cn/anolis/8/Plus/aarch64/os/Packages/secto-8-4.an8.noarch.rpm
wget https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/libdnf-0.63.0-3.0.2.an8.aarch64.rpm
wget https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/python3-hawkey-0.63.0-3.0.2.an8.aarch64.rpm
wget https://mirrors.openanolis.cn/centostakeover/8/BaseOS/aarch64/os/Packages/python3-libdnf-0.63.0-3.0.2.an8.aarch64.rpm
yum install secto-8-4.an8.noarch.rpm
secto -f

[定位分析]
aarch64环境secto包来源https://mirrors.openanolis.cn/anolis/8/Plus/aarch64/os/Packages/secto-8-4.an8.noarch.rpm
将该rpm解压后可以看到在/usr/bin/secto下62~65行,将COMPAT_RPMS固定写死了x86_64架构,明显在aarch64环境是不匹配的
------------------------------------------
[root@k8s-master aarch64]# wget https://mirrors.openanolis.cn/anolis/8/Plus/aarch64/os/Packages/secto-8-4.an8.noarch.rpm
--2022-01-10 10:27:38--  https://mirrors.openanolis.cn/anolis/8/Plus/aarch64/os/Packages/secto-8-4.an8.noarch.rpm
Resolving mirrors.openanolis.cn (mirrors.openanolis.cn)... 101.226.28.202, 101.226.28.201, 101.226.28.200, ...
Connecting to mirrors.openanolis.cn (mirrors.openanolis.cn)|101.226.28.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17012 (17K) [application/x-redhat-package-manager]
Saving to: ‘secto-8-4.an8.noarch.rpm’

100%[======================================================================================>] 17,012      --.-K/s   in 0s

2022-01-10 10:27:38 (88.7 MB/s) - ‘secto-8-4.an8.noarch.rpm’ saved [17012/17012]

[root@k8s-master aarch64]# rpm2cpio secto-8-4.an8.noarch.rpm | cpio -div
./etc/anolis-secto
./etc/motd.d/secto
./etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS
./etc/yum.repos.d/AnolisOS-Secto.repo
./usr/bin/secto
./usr/share/doc/secto
./usr/share/doc/secto/EULA
./usr/share/doc/secto/MulanPSL
./usr/share/licenses/secto
./usr/share/licenses/secto/MulanPSL
54 blocks
[root@k8s-master aarch64]# cat ./usr/bin/secto | grep "x86"
libdnf-0.63.0-3.0.2.an8.x86_64.rpm
python3-hawkey-0.63.0-3.0.2.an8.x86_64.rpm
python3-libdnf-0.63.0-3.0.2.an8.x86_64.rpm
----------------------------------------
另外在gitee secto源码文件中COMPAT_RPMS也是固定写成x86_64的 https://gitee.com/src-anolis-plus/secto/blob/a8/secto#L63
Comment 1 刘小平 alibaba_cloud_group 2022-09-01 18:02:05 UTC
已修复,请使用最新secto软件包

链接:https://mirrors.openanolis.cn/anolis/migration/secto/source/Packages/secto-8-5.an8.src.rpm
Comment 2 刘小平 alibaba_cloud_group 2022-09-06 10:28:50 UTC
(In reply to 刘小平 from comment #1)
> 已修复,请使用最新secto软件包
> 
> 链接:https://mirrors.openanolis.cn/anolis/migration/secto/source/Packages/
> secto-8-5.an8.src.rpm

update status