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 stable
repository abilitato per impostazione predefinita. Eventuali aggiornamenti vengono inseriti nel -latest
repository. Quando eseguiamo la patch dei server, utilizzeremo tale -latest
repo per creare una nuova baseline e testarla su alcuni server. Una volta testato, rendiamo quella base la nuova stable
. I -latest
repository 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-latest
repository 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.com
risolto con lo stesso indirizzo IP su entrambi i server, ma uno di essi è in grado di trovare il pacchetto e l'altro no.