Klient yum nie widzi nowych pakietów, chociaż serwer jest aktualizowany

16

Posiadamy wewnętrzny serwer yum zawierający kilka repozytoriów (kopie repozytorium RHEL, programy stworzone wewnętrznie itd.). Nasze systemy wewnętrzne są firewallem wyłączone z Internetu, więc mogą korzystać tylko z naszego wewnętrznego serwera.

Aby przetestować łatki przed wprowadzeniem ich do produkcji, mamy stablerepozytorium, które jest domyślnie włączone. Wszelkie aktualizacje są umieszczane w -latestrepozytorium. Kiedy -latestzałatamy serwery, użyjemy tego -repo do zbudowania nowej linii bazowej i przetestowania jej na kilku serwerach. Po przetestowaniu wprowadzamy nowy poziom odniesienia stable. W -latestrepo są domyślnie wyłączone.

Jedno z repozytoriów jest używane dla kilku pakietów, które pobieramy z epel, rpmforge i tak dalej. Mamy skrypt, który synchronizuje tylko potrzebne pakiety z zależnościami, których potrzebują. Repozytorium jest odbudowywane co noc za pomocą createrepo po zsynchronizowaniu pakietów. Ponieważ pakiety te nie są testowane, trafiają do int-optional-latestrepozytorium, które zwykle jest wyłączone. Jeśli serwer potrzebuje pakietu z tego repozytorium, zainstalujemy go przy użyciu enable-repo=int-optional-latest.

Dzisiaj współpracownik próbował zainstalować perl-Excel-Writer-XLSX na serwerze. Serwer nie znalazł pakietu. Próbowałem odbudować repozytorium za pomocą createrepo i przeszukałem pliki repodata, aby upewnić się, że plik tam jest. To było. Sprawdziłem również, czy plik istniał w repozytorium przy użyciu

repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX

Wyczyściłem również pamięć podręczną metadanych po stronie klienta, używając

sudo yum clean expire-cache

Mimo to klient twierdził, że pakiet nie istnieje na serwerze.

Nie sądzę, że problem leży po stronie serwera, ponieważ kiedy próbowałem przeprowadzić wyszukiwanie z innej maszyny, znalazłem pakiet. Sprawdziłem, czy pliki repo są poprawne i czy nazwa yum.example.comzostała przetłumaczona na ten sam adres IP na obu serwerach - ale jeden z nich może znaleźć pakiet, a drugi nie.

Jenny D.
źródło

Odpowiedzi:

14

Zacząłem kopać dzienniki serwera WWW na serwerze yum i nie znalazłem żadnych trafień z adresu IP dla klienta, który nie mógł znaleźć plików. Z początku tego nie rozumiałem, ponieważ wyczyściłem pamięć podręczną klientów. Więc zrobiłem kolejne czyszczenie pamięci podręcznej, tym razem używając

sudo yum -v clean expire-cache

Po uruchomieniu -vwyświetla listę repozytoriów, które czyści - a których int-optional-latestnie było na liście. Myślę, że było to spowodowane domyślnie wyłączonym repozytorium. Zrobiłem kolejne czyszczenie pamięci podręcznej, tym razem używając

sudo yum -v enable-repo=int-optional-latest clean expire-cache

Potem spróbowałem innego

sudo yum enable-repo=int-optional-latest install perl-Excel-Writer-XLSX

który działał idealnie.

Jenny D.
źródło
Polecenie powinno być z X na końcu nazwy pakietów takiego jak: sudo yum enable-repo = int-opcja-najnowszy zainstalować Perl-Excel-scenarzysta i XLSX
Chris Madden
Dzięki, @ChrisMadden! Błąd „wklej i wklej”, oczywiście ...
Jenny D.
1
sudo yum -v clean expire-cache

nie działało dla mnie. Udało mi się jednak z tym pracować

sudo touch /etc/yum.repos.d/<your_repo_file>

i

yum repolist

pokazuje, że jest zaktualizowany. Mam nadzieję że to pomoże.

Z_K
źródło