Как заставить yum видеть обновления локального репозитория без очистки кэша?

Как заставить yum видеть обновления локального репозитория без очистки кэша?

Я настроил локальный репозиторий 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 на имя вашего репозитория

Связанный контент