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

Возможные проблемы с «yum update ./*.rpm»?

На этой неделе мне нужно обновить пакетные машины, но я не совсем уверен в нашей установленной процедуре. В основном это работает так для каждой машины:

  1. Смонтируйте общий каталог, соответствующий версии / разрядности ОС, то есть: mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/
  2. yum update --downloadonly --downloaddir=/mnt/updates/
  3. yum update /mnt/updates/*.rpm

Мы используем монтирование, чтобы уменьшить используемую нами полосу пропускания сети, но поскольку на каждой машине могут быть установлены совершенно разные наборы пакетов, в команду 'update' будут включены пакеты, которые даже не присутствуют в системе, а также там быть несколькими более старыми версиями определенных пакетов.

Это проблема? Будет ли yum пропускать / удалять ненужные / устаревшие пакеты перед применением изменений?

редактировать

Прочитав ответ @aaron-copley, я решил провести небольшое тестирование. Я зашел на сервер, подключил общий ресурс, запустил yum update --downloadonly --downloaddir=/mnt/updates/демонтировал долю, сделал yum clean all, перемонтировал и повторно запустил команду. Ничего не скачал. [ура]

Я удалил rpm, снова запустил команду, и загрузился только этот пакет. [также ура]

Я установил общий ресурс на другой компьютер с той же версией RHEL, запустил yum update --downloadonly --downloaddir=/mnt/updates/, и хотя для загрузки отмечен 221 пакет, загружаются только 30, которых еще не было в общей папке. [супер ура]

В качестве бонуса yum также выделяет уже загруженные пакеты жирным шрифтом.

Yum устанавливает только более новую версию пакетов. Вы могли бы использовать createrepo пакет для создания репозитория с обновлениями и заполнить конфигурационный файл /etc/yum.repos.d/company-updates.repo содержимым:

[rhel-company-updates]
name=RHEL-company-updates
baseurl=file:///mnt/updates/
gpgcheck=0
enabled=1

Процедура упрощает:

# mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/
# yum update

Кстати, следующий шаг к оптимизации - использовать autofs с cifs для automount / mnt / updates /, когда yum пытается получить доступ к этой папке.

Yum заменит установленные пакеты только при использовании с update. Вы правы, возможно, вы не загружаете пакеты, необходимые для другой системы.

Что вы могли бы сделать, так это использовать такой инструмент, как mrepo для создания и поддержки локального хранилища всех ошибок Red Hat. Эта система будет синхронизироваться с RHN и поддерживать все пакеты в локальной сети. Затем каждая система указывает на этот хост внутри для обновлений, чтобы уменьшить потребление полосы пропускания WAN. Вам также не придется возиться с монтированием, вы можете использовать Yum через HTTP.

mrepo: зеркальное отображение репозитория Yum / Apt (fka yam)