У нас есть внутренний сервер yum, содержащий несколько репозиториев (копии репозитория RHEL, собственные программы и т. Д.). Наши внутренние системы отключены от Интернета, поэтому они могут использовать только наш внутренний сервер.
Для того, чтобы протестировать патчи перед их stable
полным внедрением , у нас есть репозиторий, который включен по умолчанию. Любые обновления помещаются в -latest
репо. Когда мы исправляем серверы, мы используем этот -latest
-repo для создания нового базового уровня и тестирования его на нескольких серверах. После тестирования мы делаем эту основу новой stable
. По -latest
умолчанию репо отключены.
Одно из репозиториев используется для нескольких пакетов, которые мы получаем из epel, rpmforge и так далее. У нас есть скрипт, который синхронизирует только нужные нам пакеты с любыми зависимостями, которые им нужны. После синхронизации пакетов репо перестраивается каждую ночь с помощью createrepo. Поскольку эти пакеты не протестированы, они попадают в int-optional-latest
репозиторий, который обычно отключен. Если серверу нужен пакет из этого репозитория, мы установим его с помощью enable-repo=int-optional-latest
.
Сегодня коллега пытался установить Perl-Excel-Writer-XLSX на сервере. Сервер не нашел пакет. Я попытался пересоздать хранилище с помощью createrepo и извлек файлы repodata, чтобы убедиться, что файл был там. Это было. Я также проверил, что файл существует в хранилище, используя
repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX
Я также очистил кеш метаданных на стороне клиента, используя
sudo yum clean expire-cache
Несмотря на это, клиент продолжал утверждать, что пакет не существует на сервере.
Я не думаю, что проблема на стороне сервера, потому что, когда я попытался выполнить поиск с другого компьютера, он нашел пакет. Я проверил, что файлы репо были правильными и что имя yum.example.com
разрешено на один и тот же IP-адрес на обоих серверах - но один из них может найти пакет, а другой - нет.