Я настроил локальный репозиторий yum, который я использую для установки тестовых сборок. Для целей тестирования мои пакеты версионируются по <svn version number>.<date>.<time>
(например,12345.20110908.150404
Проблема в том, что как только я создаю новый RPM-пакет, копирую его в каталог репозитория и запускаю createrepo $REPO_DIR
, yum не видит новый RPM-пакет доступным.
$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm
$ createrepo .
# ...snip...
$ rpm -q package
package-12345.20110908.150404-1.x86_64
$ yum list --showduplicates package
Installed Packages
package.x86_64 12345.20110908.150404-1 @repo
Available Packages
package.x86_64 12345.20110908.150404-1 repo
Я могу видеть обновления и получать их, если запущу yum clean all
и повторно извлеку метаданные, но я думаю, что это просто означает, что мне нужно сделать что-то еще с репозиторием, поскольку мне не нужно делать этого для других репозиториев yum.
Как мне настроить локальный репозиторий, чтобы мне нужно было запускать его только yum update
с клиента, не очищая кэш yum?
решение1
Вы можете запустить «yum clean expire-cache», что является гораздо более эффективным способом заставить yum проверить репозитории. ... еще одно действие, которое нужно выполнить, — это изменить значение metadata_expire для локального репозитория. (см. man yum.conf).
решение2
Попробуйте добавить следующую строку в /etc/yum.conf на клиентах Yum:
metadata_expire=1m
Следующая команда покажет вам более подробную информацию:
человек yum.conf
К вашему сведению. В CentOS 5 этот параметр закомментирован. В CentOS 6.2 для этого параметра указано значение 90m.
решение3
yum clean metadata
очищает только кэшированные имена и т. п., после чего yum перезагружает свое представление о том, что доступно.
решение4
--enablerepo=localrpmrepo из yum — это то, что вам нужно.
yum --enablerepo=localrpmrepo clean metadata
замените localrpmrepo на имя вашего репозитория