Jak uzyskać mumię, aby zobaczyć aktualizacje lokalnego repozytorium bez czyszczenia pamięci podręcznej?

19

Skonfigurowałem lokalne repozytorium yum, którego używam do instalowania kompilacji testowych. Do celów testowych moje pakiety są wersjonowane przez <svn version number>.<date>.<time>(np12345.20110908.150404

Problem polega na tym, że gdy utworzę nowy RPM, skopiuję go do katalogu repozytorium i uruchomię createrepo $REPO_DIR, yum nie widzi nowego RPM jako dostępnego.

$ 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

Widzę aktualizacje i łapię je, jeśli uruchomię, yum clean alla następnie ponownie pobierz metadane, ale myślę, że oznacza to po prostu, że muszę robić coś innego z repozytorium, ponieważ nie muszę tego robić w przypadku innych repozytoriów yum.

Jak skonfigurować moje lokalne repozytorium, aby wystarczyło tylko uruchomić yum updateklienta, bez konieczności czyszczenia pamięci podręcznej yum?

Matt
źródło

Odpowiedzi:

24

Możesz uruchomić „yum clean expire-cache”, co jest znacznie bardziej wydajnym sposobem, aby powiedzieć yumowi, aby sprawdził repozytorium. ... inną rzeczą do zrobienia jest zmiana wartości metadata_expire dla lokalnego repozytorium. (patrz man yum.conf).

James Antill
źródło
Czy istnieje sposób na wygaśnięcie pamięci podręcznej tylko określonego repozytorium?
myroslav
1
Jedynym łatwym sposobem na to jest --disablerepo = * --enablerepo = myrepo, otherrepo ... chociaż możesz stworzyć alias, jeśli zrobisz coś dużo.
James Antill
11

Spróbuj dodać następujący wiersz w pliku /etc/yum.conf na klientach Yum:

metadata_expire = 1m

Następujące polecenie pokazuje więcej informacji:

man yum.conf

FYI. W CentOS 5 parametr został skomentowany. CentOS 6.2 ma wartość 90 m.

2oahu.com
źródło
To jest trochę stare, ale właśnie na to wpadłem. Możesz ustawić tę wartość dla pojedynczego repozytorium, edytując plik /etc/yum.repos.d/my.repo.
jwm
3

yum clean metadata czyści tylko buforowane nazwy i takie, po czym yum ponownie ładuje swoje wyobrażenie o tym, co jest dostępne.

vonbrand
źródło
0

Właśnie miałem ten sam problem, spróbuj:

mniam wszystko

jobwat
źródło
1
Przeczytaj uważnie pytanie. Myślę, że szukał alternatywnej metody, w której nie musiałby wyczyścić pamięci podręcznej.
slm
Boże masz rację: |
jobwat
0

Opcja --enablerepo = localrpmrepo to opcja, której szukasz. więc

yum --enablerepo=localrpmrepo clean metadata

zastąp localrpmrepo nazwą repozytorium

Neil
źródło
Nie, w tym przypadku problemem jest z pewnością to, że uważa, że ​​pamięć podręczna jest nadal ważna i nie sprawdza dostępności aktualizacji.
Falcon Momot
Udało mi się zaktualizować tylko jedno repozytorium przy użyciu tego komunikatu i jeszcze jeden: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Po prostu zrobię funkcję bash i skończę z tym!
bgStack15