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

19

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

Matt
источник

Ответы:

24

Вы можете запустить «yum clean expire-cache», который является гораздо более эффективным способом сказать yum проверять репозитории. ... другое, что нужно сделать, это изменить значение metadata_expire для локального репо. (см. man yum.conf).

Джеймс Антилл
источник
Есть ли способ expire-cache только для конкретного репозитория?
Мирослав
1
Единственный простой способ сделать это - --disablerepo = * --enablerepo = myrepo, otherrepo ... хотя вы можете создать псевдоним, если это то, что вы будете делать много.
Джеймс Антилл
11

Попробуйте добавить следующую строку в /etc/yum.conf для клиентов Yum:

metadata_expire = 1м

Следующая команда показывает вам больше информации:

man yum.conf

FYI. CentOS 5 имеет закомментированный параметр. CentOS 6.2 имеет 90 м для этого значения.

2oahu.com
источник
Это несколько устарело, но я просто столкнулся с этим. Вы можете установить это значение для одного репозитория, отредактировав файл /etc/yum.repos.d/my.repo.
JWM
3

yum clean metadata очищает только кэшированные имена и тому подобное, после чего yum перезагружает свое представление о том, что доступно.

vonbrand
источник
0

Просто была та же проблема, попробуйте:

ням чистить все

jobwat
источник
1
Пожалуйста, внимательно прочитайте вопрос. Я полагаю, он искал альтернативный метод, при котором ему не нужно было очищать кеш.
SLM
боже, ты так прав: |
Jobwat
0

yum's --enablerepo = localrpmrepo - это вариант, который вам нужен. так

yum --enablerepo=localrpmrepo clean metadata

замените localrpmrepo именем вашего репо

Нил
источник
Нет, в этом случае проблема, безусловно, заключается в том, что он думает, что кэш все еще действует и не проверяет наличие обновлений.
Сокол Момот
Я был в состоянии обновить только один репозиторий , используя это заявление и еще один: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Я просто сделаю функцию bash и покончу с ней!
bgStack15