Eu configurei um repositório yum local que uso para instalar compilações de teste. Para fins de teste, meus pacotes são versionados por <svn version number>.<date>.<time>
(por exemplo12345.20110908.150404
O problema é que, depois que eu faço um novo RPM, copio-o para o diretório do repositório e executo createrepo $REPO_DIR
, o yum não vê o novo RPM como 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 executar yum clean all
e buscar novamente os metadados, mas acho que isso significa apenas que preciso fazer outra coisa no repositório, já que não preciso fazer isso para outros repositórios yum.
Como preciso configurar meu repositório local para que eu só precise executar yum update
a partir do cliente sem precisar limpar meu cache do yum?
Responder1
Você pode executar "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 do repositório local. (veja man yum.conf).
Responder2
Tente adicionar a seguinte linha em /etc/yum.conf em clientes Yum:
metadata_expire = 1 milhão
O comando a seguir mostra mais informações:
cara yum.conf
PARA SUA INFORMAÇÃO. CentOS 5 tem o parâmetro comentado. CentOS 6.2 tem 90m para o valor.
Responder3
yum clean metadata
limpa apenas os nomes em cache e outros itens, após o que o yum recarrega sua ideia do que está disponível.
Responder4
--enablerepo=localrpmrepo do yum é a opção que você procura. então
yum --enablerepo=localrpmrepo clean metadata
substitua localrpmrepo pelo nome do seu repositório