Как получить 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?

Ответы:


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 м для этого значения.


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

3

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


0

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

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.