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 stable
repozytorium, które jest domyślnie włączone. Wszelkie aktualizacje są umieszczane w -latest
repozytorium. Kiedy -latest
zał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 -latest
repo 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-latest
repozytorium, 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.com
została przetłumaczona na ten sam adres IP na obu serwerach - ale jeden z nich może znaleźć pakiet, a drugi nie.