Назад | Перейти на главную страницу

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

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