Як мені зробити 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 repos.

Як мені потрібно налаштувати своє локальне сховище так, що мені потрібно лише запуститись yum updateвід клієнта без необхідності очищати кеш?

Відповіді:


24

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


Чи є спосіб закінчити термін кешування лише певного сховища?
мирослав

1
Єдиний простий спосіб зробити це --disablerepo = * --enablerepo = myrepo, otherrepo ... хоча ви можете створити псевдонім, якщо це щось, що ви багато зробите.
Джеймс Антілл

11

Спробуйте додати наступний рядок у /etc/yum.conf для клієнтів Yum:

metadata_expire = 1м

Наступна команда показує вам більше інформації:

людина yum.conf

FYI. У CentOS 5 параметр коментується. CentOS 6.2 має 90 м для значення.


Це дещо старе, але я просто наткнувся на це. Ви можете встановити це значення для одного сховища, відредагувавши файл /etc/yum.repos.d/my.repo.
jwm

3

yum clean metadata очищає просто кешовані імена та інші, після чого yum перезавантажує уявлення про наявне.


0

Просто виникло те саме питання, спробуйте:

yum очистити всіх


1
Будь ласка, уважно прочитайте питання. Я вважаю, що він шукав альтернативний метод, де йому не доведеться очищати кеш.
slm

Боже, ти так прав: |
роботаот

0

yum's --enablerepo = localrpmrepo - це варіант, який ви шукаєте. так

yum --enablerepo=localrpmrepo clean metadata

замініть localrpmrepo своїм іменем repos


Ні, в цьому випадку проблема, безумовно, полягає в тому, що він вважає, що кеш все ще дійсний і не перевіряє наявність оновлень.
Falcon Momot

Я був в змозі оновити тільки один репозиторій , використовуючи цю заяву і ще один: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Я просто зроблю баш-функцію і з нею виконуюсь!
bgStack15
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.