mock初始化时的错误信息如下:
Downloading Packages: [SKIPPED] systemd-233-6.fc25.x86_64.rpm: Already downloaded [SKIPPED] systemd-pam-233-6.fc25.x86_64.rpm: Already downloaded [MIRROR] lightdm-1.18.3-1.1.fc25.x86_64.rpm: Interrupted by header callback: Server reports Content-Length: 209086 but expected size is: 209078 [FAILED] lightdm-1.18.3-1.1.fc25.x86_64.rpm: No more mirrors to try - All mirrors were already tried without success (4-5/9): lightdm-gob 67% [============= ] 1.9 MB/s | 3.4 MB 00:00 ETA Error: Error downloading packages: Cannot download v2.1/lightdm-1.18.3-1.1.fc25.x86_64.rpm: All mirrors were tried [FAIL] [版本构建失败] 构建 lightdm-cgdl-greeter-1.0-14.fc25.src.rpm 失败! 请检查构建日志 /cgdl/desktop/jenkins/workspace/CGDL/CGDL-v2.1-sys-base-related/CGDL-v2.1-sys-base-related-dev-build/version-build-related/../build-x86_64/v2.1//log//verbuild//rpm_error.log [构建失败] verbuild 退出,请查看构建日志:/cgdl/desktop/jenkins/workspace/CGDL/CGDL-v2.1-sys-base-related/CGDL-v2.1-sys-base-related-dev-build/version-build-related/../build-x86_64/v2.1//log//std_build.log
原因分析:
1、期望的大小和实际包大小不一致,说明仓库获取时存在问题;由三种可能性:1> mock配置文件配置的仓库地址不正确,而安装mock依赖包时的实际数据与缓存中数据不一致; 2> mock配置的yum仓库存在过期缓存;3> 仓库目录下存在临时隐藏目录.repodata 4> mock配置的dnf仓库存在过期缓存;
解决办法:
1、修正mock配制文件的yum源地址;
2、dnf clean expire-cache
3、删除临时隐藏目录
备注:linux下查找缓存下是否有checksum不一致的包
[root@localhost os]# find /var/cache/ -name "python3-rpm*"
/var/cache/mock/desktop-v2.1-i386-release-sys-base-related/dnf_cache/desktop-32-update-f468bc6a55692839/packages/python3-rpm-4.13.0.1-1.1.fc25.i686.rpm
/var/cache/mock/desktop-v2.1-i386-release-wine-related/dnf_cache/desktop-32-update-f468bc6a55692839/packages/python3-rpm-4.13.0.1-1.1.fc25.i686.rpm
/var/cache/mock/desktop-v2.1-i386-release-software-center-related/dnf_cache/desktop-os-e21f8ca340c4e99c/packages/python3-rpm-macros-3-12.fc25.noarch.rpm
删除相关包方法:
rm `find /var/cache/ -name "python3-rpm*"`
将关于涉事包的所有mock缓存全部删除后,再次执行构建,成功;初步判定系统mock缓存目录下不同mock环境的缓存数据会相互影响。具体根因后面进一步跟进分析