Я хотел бы настроить локальное репо для rhel 5 и 6. Можно ли это сделать на 1 сервере или мне нужен один сервер для каждой основной версии?
У нас есть действующая легальная подписка на RH, но мы не будем платить за спутник RH.
Вы жестяная банка собирать пакеты для EL5 на коробке EL6, но проблема в том, что EL6 имеет более новую версию RPM, которая записывает файлы, несовместимые с версией RPM, поставляемой с EL5. Вы можете обойти это с помощью некоторых аргументов 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
на SRPM EL5 и EL6 соответственно:
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