Como faço para que o yum veja as atualizações de um repositório local sem limpar o cache?

19

Eu configurei um repositório yum local que eu uso para instalar compilações de teste. Para fins de teste, meus pacotes são versionados por <svn version number>.<date>.<time>( por exemplo,12345.20110908.150404

O problema é que, quando eu faço um novo RPM, copio-o para o diretório do repositório e corro createrepo $REPO_DIR, o yum não vê o novo RPM disponível.

$ 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 ver as atualizações e obtê-las se eu executar yum clean alle buscar novamente os metadados, mas acho que isso significa que preciso fazer outra coisa no repositório, pois não preciso fazer isso em outros repositórios yum.

Como preciso configurar meu repositório local para que eu só precise executar a yum updatepartir do cliente sem precisar limpar meu cache do yum?

Matt
fonte

Respostas:

24

Você pode executar o "yum clean expire-cache", que é uma maneira muito mais eficiente de dizer ao yum para verificar os repositórios. ... a outra coisa a fazer seria alterar o valor metadata_expire para o repositório local. (veja man yum.conf).

James Antill
fonte
Existe uma maneira de expirar em cache apenas repositório específico?
Myroslav
11
A única maneira fácil de fazer isso é --disablerepo = * --enablerepo = myrepo, otherrepo ... embora você possa criar um alias se for algo que você fará muito.
James Antill
11

Tente adicionar a seguinte linha no /etc/yum.conf nos clientes Yum:

metadata_expire = 1m

O comando a seguir mostra mais informações:

homem yum.conf

PARA SUA INFORMAÇÃO. O CentOS 5 tem o parâmetro comentado. O CentOS 6.2 tem 90m para o valor.

2oahu.com
fonte
Isso é um pouco antigo, mas acabei de descobrir isso. Você pode definir esse valor para um único repositório editando o arquivo /etc/yum.repos.d/my.repo.
jwm 8/10
3

yum clean metadata limpa apenas os nomes em cache e tal, após o qual o yum recarrega sua ideia do que está disponível.

vonbrand
fonte
0

Só tive o mesmo problema, tente:

yum limpe tudo

jobwat
fonte
11
Por favor, leia a pergunta com atenção. Acredito que ele estava procurando um método alternativo em que não precisava limpar o cache.
Slm
Deus, você está tão certo: |
jobwat
0

--enablerepo = localrpmrepo da yum é a opção que você procura. então

yum --enablerepo=localrpmrepo clean metadata

substitua localrpmrepo pelo seu nome de repositório

Neil
fonte
Não, nesse caso, o problema é certamente que ele acha que o cache ainda é válido e não verifica se há atualizações.
Falcon Momot
Eu era capaz de atualizar apenas um repositório usando esta declaração e outra: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Vou apenas fazer uma função bash e pronto!
precisa saber é o seguinte