Локальный репозиторий для нескольких версий

Я хотел бы настроить локальное репо для 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
Другие вопросы по тегам