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

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

У нас есть внутренний yum-сервер, содержащий несколько репозиториев (копии репозитория RHEL, программы, созданные внутри компании, и т. Д.). Наши внутренние системы защищены брандмауэром от Интернета, поэтому они могут использовать только наш внутренний сервер.

Чтобы протестировать патчи, прежде чем запускать их в производство, у нас есть stable репо, которое включено по умолчанию. Любые обновления помещаются в -latest репо. Когда мы исправляем серверы, мы будем использовать это -latest-repo, чтобы создать новую базовую линию и протестировать ее на нескольких серверах. После тестирования мы делаем эту базу новым stable. В -latest по умолчанию репозитории отключены.

Один из репозиториев используется для нескольких пакетов, которые мы получаем из epel, rpmforge и так далее. У нас есть сценарий, который синхронизирует только те пакеты, которые нам нужны, с любыми необходимыми им зависимостями. Репо восстанавливается каждую ночь с помощью createrepo после синхронизации пакетов. Поскольку эти пакеты не тестировались, они попадают в int-optional-latest репо, которое обычно отключено. Если серверу нужен пакет из этого репо, мы установим его, используя enable-repo=int-optional-latest.

Сегодня коллега пытался установить perl-Excel-Writer-XLSX на сервер. Сервер не нашел пакет. Я попытался перестроить репозиторий с помощью createrepo и обработал файлы реподанных, чтобы убедиться, что файл там. Это было. Я также подтвердил, что файл существует в репозитории, используя

repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX

Я также очистил кеш метаданных на стороне клиента, используя

sudo yum clean expire-cache

Несмотря на это, клиент продолжал утверждать, что пакет не существует на сервере.

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

Я начал копаться в журналах веб-сервера на сервере 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

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

sudo yum -v clean expire-cache

у меня не сработало. Однако мне удалось заставить его работать с

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

и

yum repolist

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