我想为 rhel 5 和 6 设置一个本地 repo。这可以在 1 台服务器上完成吗,还是每个主要版本都需要一台服务器?
我们与 RH 拥有有效、合法的订阅,但我们不愿意为 RH 卫星付费。
答案1
你能在 EL6 机器上为 EL5 构建软件包,但问题是 EL6 具有较新版本的 RPM,它写入的文件与 EL5 附带的 RPM 版本不兼容。您可以rpmbuild
在构建源包时使用一些参数来解决这个问题,最好是在包装器脚本中。类似这样的操作会导致rpmbuild
使用较旧的格式:
#!/bin/bash
# Assumes you have an RPM environment set up in ~/rpmbuild using rpmdev-setuptree
# Argument 1: a spec file in ~/rpmbuild/SPECS
# Build the EL6 SRPM
rpmbuild -bs $1
# Build the EL5 SRPM
rpmbuild \
--define "_source_filedigest_algorithm 1" \
--define "_binary_filedigest_algorithm 1" \
--define "_binary_payload w9.gzdio" \
--define="dist .el5" \
--define="el5 1" \
$1
一旦构建了 SRPM,您就可以mock
分别在 EL5 和 EL6 SRPM 上运行:
for el in 5 6; do
for package in ~/rpmbuild/SRPMS/*.el{$el}.src.rpm; do
for arch in x86_64 i386; do
mock -r epel-{$el}-{$arch} $package
done
done
done