Come posso ottenere yum per vedere gli aggiornamenti di un repository locale senza pulire la cache?


19

Ho creato un repository yum locale che utilizzo per installare build di test. Ai fini del test, i miei pacchetti sono aggiornati da <svn version number>.<date>.<time>(ad es12345.20110908.150404

Il problema è che, una volta creato un nuovo RPM, copiarlo nella directory del repository ed eseguirlo createrepo $REPO_DIR, yum non vede il nuovo RPM come disponibile.

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo

Posso vedere gli aggiornamenti e prenderli se corro yum clean alle poi recuperare nuovamente i metadati, ma penso che questo significhi solo che devo fare qualcos'altro dal repository, poiché non devo farlo per altri repository di yum.

Come devo impostare il mio repository locale in modo da dover eseguire solo yum updatedal client senza dover pulire la mia cache yum?

Risposte:


24

È possibile eseguire "yum clean expire-cache" che è un modo molto più efficiente per dire a yum di controllare i repository. ... l'altra cosa da fare sarebbe cambiare il valore di metadata_expire per il repository locale. (vedi man yum.conf).


C'è un modo per scadere nella cache solo repository specifico?
miroslav,

1
L'unico modo semplice per farlo è --disablerepo = * --enablerepo = myrepo, otherrepo ... anche se puoi creare un alias se è qualcosa che farai molto.
James Antill,

11

Prova ad aggiungere la seguente riga in /etc/yum.conf sui client Yum:

metadata_expire = 1m

Il seguente comando mostra ulteriori informazioni:

man yum.conf

FYI. CentOS 5 ha commentato il parametro. CentOS 6.2 ha 90m per il valore.


Questo è un po 'vecchio, ma mi sono appena imbattuto in questo. È possibile impostare questo valore per un singolo repository modificando il file /etc/yum.repos.d/my.repo.
jwm

3

yum clean metadata pulisce solo i nomi memorizzati nella cache e simili, dopo di che yum ricarica la sua idea di ciò che è disponibile.


0

Ho appena avuto lo stesso problema, prova:

yum pulisci tutto


1
Si prega di leggere attentamente la domanda. Credo che stesse cercando un metodo alternativo in cui non fosse necessario svuotare la cache.
slm,

dio hai così ragione: |
jobwat

0

yen's --enablerepo = localrpmrepo è l'opzione che stai cercando. così

yum --enablerepo=localrpmrepo clean metadata

sostituire localrpmrepo con il nome del proprio repository


No, in questo caso, il problema è certamente che pensa che la cache sia ancora valida e non controlla gli aggiornamenti.
Falcon Momot,

Sono stato in grado di aggiornare un solo repository utilizzando questa dichiarazione e un altro: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Farò solo una funzione bash e finirò con essa!
bgStack15,
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.