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?

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).


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.


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.


0

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

mniam wszystko


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.