Ihr Client sieht keine neuen Pakete, obwohl der Server aktualisiert wurde

16

Wir haben einen internen YUM-Server mit mehreren Repos (Kopien des RHEL-Repos, selbst erstellte Programme usw.). Unsere internen Systeme sind vom Internet abgeschirmt, sodass sie nur unseren internen Server verwenden können.

Um Patches zu testen, bevor sie in die Produktion gelangen, haben wir ein stableRepo, das standardmäßig aktiviert ist. Alle Updates werden in das -latestRepo gestellt. Wenn wir Server patchen, verwenden wir -latest-repo, um eine neue Baseline zu erstellen und auf einigen Servern zu testen. Einmal getestet, machen wir diese Basislinie zur neuen stable. Die -latestRepos sind standardmäßig deaktiviert.

Eines der Repos wird für einige Pakete verwendet, die wir aus Epel, RPMForge usw. abrufen. Wir haben ein Skript, das nur die gewünschten Pakete mit den von ihnen benötigten Abhängigkeiten synchronisiert. Das Repo wird jede Nacht mit createrepo neu erstellt, nachdem die Pakete synchronisiert wurden. Da diese Pakete nicht getestet wurden, landen sie im int-optional-latestRepo, das normalerweise deaktiviert ist. Wenn ein Server ein Paket aus diesem Repository benötigt, installieren wir es mit enable-repo=int-optional-latest.

Heute hat ein Mitarbeiter versucht, perl-Excel-Writer-XLSX auf einem Server zu installieren. Der Server hat das Paket nicht gefunden. Ich habe versucht, das Repository mit createrepo neu zu erstellen, und die Repodatendateien überprüft, um sicherzustellen, dass die Datei vorhanden ist. Es war. Ich habe auch mit überprüft, ob die Datei im Repository vorhanden ist

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

Ich habe auch den Metadaten-Cache auf der Clientseite mit geleert

sudo yum clean expire-cache

Trotzdem behauptete der Client immer wieder, dass das Paket auf dem Server nicht vorhanden sei.

Ich glaube nicht, dass das Problem auf der Serverseite liegt, da das Paket gefunden wurde, als ich versuchte, auf einem anderen Computer zu suchen. Ich habe überprüft, ob die Repo-Dateien korrekt sind und der Name yum.example.comauf beiden Servern in dieselbe IP-Adresse aufgelöst wurde. Einer von ihnen findet das Paket, der andere nicht.

Jenny D sagt Reinstate Monica
quelle

Antworten:

14

Ich fing an, in den Webserver-Protokollen auf dem YUM-Server zu stöbern, und fand keine Treffer von der IP für den Client, der die Dateien nicht finden konnte. Das habe ich zunächst nicht verstanden, da ich den Cache auf den Clients geleert hatte. Also habe ich ein weiteres Cache-Cleanout durchgeführt, diesmal mit

sudo yum -v clean expire-cache

Wenn es mit ausgeführt wird -v, wird aufgelistet, welche Repos es bereinigt - und die int-optional-latestwaren nicht in der Liste. Ich denke, das lag daran, dass das Repo standardmäßig deaktiviert war. Ich habe ein weiteres Cache-Clearing durchgeführt, diesmal mit

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

Danach versuchte ich es mit einem anderen

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

das hat einwandfrei funktioniert.

Jenny D sagt Reinstate Monica
quelle
Der Befehl sollte mit einem X am Ende des Paketnamens wie folgt lauten: sudo yum enable-repo = int-optional-neueste Installation perl-Excel-Writer-XLSX
Chris Madden
Vielen Dank, @ChrisMadden! Offensichtlich ein Fehler beim Ausschneiden und Einfügen ...
Jenny D sagt Reinstate Monica
1
sudo yum -v clean expire-cache

hat bei mir nicht funktioniert. Ich konnte es jedoch zum Laufen bringen

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

und

yum repolist

zeigt, dass es aktualisiert wird. Hoffe das hilft.

Z_K
quelle