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?

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).


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.


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.


0

Só tive o mesmo problema, tente:

yum limpe tudo


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.