На этой неделе мне нужно обновить пакетные машины, но я не совсем уверен в нашей установленной процедуре. В основном это работает так для каждой машины:
mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/
yum update --downloadonly --downloaddir=/mnt/updates/
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)