Локальный репозиторий для нескольких версий
Я хотел бы настроить локальное репо для rhel 5 и 6. Это можно сделать на 1 сервере, или мне нужен один сервер для каждой основной версии?
У нас есть действующая легальная подписка на RH, но мы не будем платить за спутник RH.
1 ответ
Вы можете создавать пакеты для 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
на SR5M 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