O cliente yum não vê novos pacotes, embora o servidor esteja atualizado

16

Temos um servidor interno yum contendo vários repositórios (cópias do repositório RHEL, programas criados internamente e assim por diante). Nossos sistemas internos são protegidos por firewall da Internet, para que eles possam usar apenas nosso servidor interno.

Para testar os patches antes de enviá-los até a produção, temos um stablerepositório ativado por padrão. Todas as atualizações são colocadas no-latest repositório. Quando -latestcorrigimos servidores, usamos esse repositório para criar uma nova linha de base e testá-la em alguns servidores. Depois de testado, tornamos essa linha de base a nova stable. Os -latestrepositórios são desativados por padrão.

Um dos repositórios é usado para alguns pacotes que buscamos no epel, rpmforge e assim por diante. Temos um script que sincroniza apenas os pacotes que queremos com quaisquer dependências que eles precisem. O repo é reconstruído todas as noites com o createrepo após a sincronização dos pacotes. Como esses pacotes não foram testados, eles terminam noint-optional-latest repositório que geralmente está desativado. Se um servidor precisar de um pacote desse repositório, vamos instalá-lo usando enable-repo=int-optional-latest.

Hoje, um colega de trabalho estava tentando instalar o perl-Excel-Writer-XLSX em um servidor. O servidor não encontrou o pacote. Tentei reconstruir o repositório usando createrepo e recebi os arquivos repodata para garantir que o arquivo estivesse lá. Isso foi. Também verifiquei que o arquivo existia no repositório usando

repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX

Também limpei o cache de metadados no lado do cliente, usando

sudo yum clean expire-cache

Apesar disso, o cliente continuou alegando que o pacote não existia no servidor.

Não acho que o problema esteja no lado do servidor, porque quando tentei fazer uma pesquisa em outra máquina, ele encontrou o pacote. Eu verifiquei que os arquivos repo estavam corretos e que o nome foi yum.example.comresolvido para o mesmo endereço IP nos dois servidores - mas um deles pode encontrar o pacote e o outro não.

Jenny D
fonte

Respostas:

14

Comecei a pesquisar nos logs do servidor web no servidor yum e não encontrei nenhum resultado do IP para o cliente que não conseguia encontrar os arquivos. Eu não entendi isso no começo, já que havia limpado o cache nos clientes. Então, fiz outra limpeza de cache, desta vez usando

sudo yum -v clean expire-cache

Quando executado -v, ele lista quais repositórios são limpos - e os que int-optional-latestnão estavam na lista. Eu acho que isso foi devido ao repo ser desativado por padrão. Eu fiz outra limpeza de cache, desta vez usando

sudo yum -v enable-repo=int-optional-latest clean expire-cache

Depois disso, tentei outra

sudo yum enable-repo=int-optional-latest install perl-Excel-Writer-XLSX

que funcionou perfeitamente.

Jenny D
fonte
Comando deve ser com um X no final do nome do pacote como: sudo yum permitir-repo = int-opcional-latest instalar perl-Excel-Writer-XLSX
Chris Madden
Obrigado, @ChrisMadden! Cut-and-paste-erro, obviamente ...
Jenny D
1
sudo yum -v clean expire-cache

não funcionou para mim. No entanto, consegui fazê-lo funcionar com

sudo touch /etc/yum.repos.d/<your_repo_file>

e

yum repolist

mostra que está atualizado. Espero que isto ajude.

Z_K
fonte