клиент yum не видит новые пакеты, хотя сервер обновлен

16

У нас есть внутренний сервер 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-адрес на обоих серверах - но один из них может найти пакет, а другой - нет.

Дженни Д
источник

Ответы:

14

Я начал копаться в журналах веб-сервера на сервере yum и не нашел ни одного совпадения с IP-адреса клиента, который не смог найти файлы. Сначала я этого не понял, так как очистил кеш клиентов. Так что я сделал еще одну очистку кэша, на этот раз используя

sudo yum -v clean expire-cache

При запуске -vон показывает, какие репозитории он очищает, а чего int-optional-latestнет в списке. Я полагаю, это произошло из-за того, что репо отключено по умолчанию. Я сделал еще одну очистку кэша, на этот раз используя

sudo yum -v enable-repo=int-optional-latest clean expire-cache

После этого я попробовал другой

sudo yum enable-repo=int-optional-latest install perl-Excel-Writer-XLSX

который работал отлично.

Дженни Д
источник
Команда должна быть с X в конце имени пакета, например: sudo yum enable-repo = int-option-latest install perl-Excel-Writer-XLSX
Крис Мэдден,
Спасибо, @ChrisMadden! Ошибка вырезать и вставить, очевидно ...
Дженни Д
1
sudo yum -v clean expire-cache

не работал для меня Тем не менее, я смог заставить его работать с

sudo touch /etc/yum.repos.d/<your_repo_file>

и

yum repolist

показывает, что это обновлено. Надеюсь это поможет.

z_k
источник