il client yum non vede nuovi pacchetti sebbene il server sia aggiornato


16

Abbiamo un server interno yum contenente diversi repository (copie del repository RHEL, programmi creati internamente e così via). I nostri sistemi interni sono protetti da firewall da Internet, quindi possono utilizzare solo il nostro server interno.

Per testare le patch prima di metterle in produzione, abbiamo un stablerepository abilitato per impostazione predefinita. Eventuali aggiornamenti vengono inseriti nel -latestrepository. Quando eseguiamo la patch dei server, utilizzeremo tale -latestrepo per creare una nuova baseline e testarla su alcuni server. Una volta testato, rendiamo quella base la nuova stable. I -latestrepository sono disabilitati per impostazione predefinita.

Uno dei repository è usato per alcuni pacchetti che prendiamo da epel, rpmforge e così via. Abbiamo uno script che sincronizza solo i pacchetti che vogliamo con le dipendenze di cui hanno bisogno. Il repository viene ricostruito ogni notte con createrepo dopo la sincronizzazione dei pacchetti. Poiché questi pacchetti non sono stati testati, finiscono nel int-optional-latestrepository che di solito è disabilitato. Se un server necessita di un pacchetto da quel repository, lo installeremo usando enable-repo=int-optional-latest.

Oggi un collega stava cercando di installare perl-Excel-Writer-XLSX su un server. Il server non ha trovato il pacchetto. Ho provato a ricostruire il repository usando createrepo e ho grepped i file repodata per assicurarmi che il file fosse lì. Era. Ho anche verificato che il file esisteva all'interno del repository utilizzando

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

Ho anche cancellato la cache dei metadati sul lato client, usando

sudo yum clean expire-cache

Nonostante ciò, il client ha continuato a sostenere che il pacchetto non esisteva sul server.

Non penso che il problema sia sul lato server, perché quando ho provato a fare una ricerca da un'altra macchina, ho trovato il pacchetto. Ho verificato che i file di repository erano corretti e che il nome era stato yum.example.comrisolto con lo stesso indirizzo IP su entrambi i server, ma uno di essi è in grado di trovare il pacchetto e l'altro no.

Risposte:


14

Ho iniziato a scavare nei log del server web sul server yum e non ho trovato alcun hit dall'IP per il client che non è riuscito a trovare i file. All'inizio non l'ho capito, dato che avevo svuotato la cache sui client. Quindi ho fatto un altro ripulimento della cache, questa volta usando

sudo yum -v clean expire-cache

Quando eseguito -v, elenca i repository che pulisce e il int-optional-latestnon era nell'elenco. Immagino che ciò fosse dovuto al fatto che il repository era disabilitato per impostazione predefinita. Ho fatto un altro svuotamento della cache, questa volta usando

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

Dopo quello, ne ho provato un altro

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

che ha funzionato perfettamente.


Il comando dovrebbe essere con una X alla fine del nome del pacchetto come: sudo yum enable-repo = int-optional-latest install perl-Excel-Writer-XLSX
Chris Madden

Grazie, @ChrisMadden! Errore di taglia e incolla, ovviamente ...
Jenny D

1
sudo yum -v clean expire-cache

non ha funzionato per me. Tuttavia, sono stato in grado di farlo funzionare

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

e

yum repolist

mostra che è aggiornato. Spero che sia di aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.