yum trava e não responde

37

Estou executando yum check-updatee congela após 2 linhas de saída:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

Não tenho certeza do que está acontecendo. As últimas coisas que lembro de ter feito com o yum foram yum updatee olhando para um dos repositórios do CentOS, mas não fiz nenhuma alteração.

Alguma sugestão para corrigir yum?

barrrista
fonte

Respostas:

22

Você pode ter um problema de DNS. Tente garantir que você possa resolver os registros DNS localmente:

nslookup google.com

Se você receber um IP de volta com esse comando, deverá estar OK para o DNS. Tente remover o cache mais rápido e executar o comando yum novamente:

rm -f /var/cache/yum/timedhosts.txt

Garrett
fonte
11
Eu recebi um IP de volta desse comando. timedhosts.txt era um arquivo de texto vazio, mas tentei removê-lo de qualquer maneira. Em seguida, refiz meu comando yum. Infelizmente sem sucesso. Ainda está pendurado no mesmo local, "Determinando os espelhos mais rápidos". Se eu executar detalhado, recebo Loading "fastestmirror" plug-in tempo Config: 0,094 Yum Versão: 3.2.22 Configurando Package Sacks velocidades Carregando espelho de hostfile em cache
barrrista
10
Para descartar um problema com o plug-in mais rápido, tente executar o yum sem nenhum plug-in:yum --noplugins check-update
Garrett
67

Tudo isso não funcionou comigo.

Usando o CentOS e yum. yum trava sem uma mensagem de erro, pelo menos, para que apareça. Pressionar Ctrl+ Cnão funciona (pressionar repetidamente e novamente e novamente).

Várias coisas precisam ser verificadas: - os repositórios estão OK? - a rede está OK? - os bancos de dados yum e rpm estão OK?

Então, primeiro comece com as coisas fáceis - limpe os bancos de dados:

rm -f /var/lib/rpm/__*
rpm --rebuilddb -v -v   
yum clean all

Se isso não funcionar, você pode definir um nível de depuração, nível de erro e tempo limite para o yum em /etc/yum.conf:

debuglevel=1
errorlevel=1
timeout=1

O tempo limite é 30 segundos padrão. Portanto, se um repositório não responder, o erro levará 30 segundos para aparecer. Também tente usar yum sem os plugins (como o espelho e prioridades mais rápido) com a opção --noplugins. Agora, iniciar o yum novamente deve fornecer mais informações mais rapidamente. Teste com:

yum --verbose --noplugins info

Você pode obter algo parecido com isto:

 Config time: 0.105
 Yum Version: 3.2.22
 Setting up Package Sacks
 Loading mirror speeds from cached hostfile
 * base: mirror.nl.leaseweb.net
 * extras: mirror.nl.leaseweb.net
 * ius: mirrors.ircam.fr
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nl.leaseweb.net link-to-server-repository/repomd.xml: [Errno 4] IOError: urlopen error (97, 'Address family not supported by protocol') 
 Trying other mirror.

Isso indica que nenhuma informação pode ser recebida do servidor. Experimente a URL exibida pelo yum (indicada acima com o link para o servidor-repositório) no seu navegador da web. Copie e cole da sua resposta yum, não desta postagem! Se você receber uma lista, sabe que o repositório está online.

Se você receber um erro no seu navegador, tente remover esse repositório de /etc/yum.repos.d. Tente buscar a lista no seu servidor com o wget e cole o URL:

wget link-to-server-repository/repomd.xml

Se isso gerar um tempo limite, haverá um problema com as configurações de firewall ou proxy. Tente desativar seu firewall.

Se você estiver executando csf(ConfigServer Security and Firewall) e lfdpoderá desativar o csf com:

csf -x

Tente o yum novamente e, se funcionar, você terá que reconfigurar o seu csf. Ative csfnovamente com:

csf -e

E também verifique suas configurações de proxy. Você também pode tentar alterar o https para http nos arquivos .repo em /etc/yum.repos.d/.

user179734
fonte
11
Esta resposta vale muito mais do que 4 upvotes = (
mveroone
Muitas informações boas aqui. Aumentar e executar o nível de depuração yum --verbose --noplugins infolevou-me a encontrar "Erro: Não é possível recuperar os metadados do repositório (repomd.xml) para o repositório: base. Verifique o caminho e tente novamente", que estou investigando agora. Meu DNS está funcionando para que esse não seja o problema.
harperville
3
Um ponto importante que parece estar faltando nesta resposta é que yum checkpode levar horas para ser concluído! Mais informações: centos.org/forums/viewtopic.php?f=14&t=46676
gmas80
O primeiro código é o que funcionou comigo .. obrigado.
Maher Abuthraa
De limpeza de banco de dados trabalhou para mim também
frostymarvelous
2

Eu tive uma questão semelhante. Acabou sendo um endereço DNS antigo em resolv.conf. Mudei o IP para o correto e ele corrigiu o problema.

Joe Sulkowski
fonte
Sob o Vagrant, isso também pode acontecer.
22415 bbassassiiee
0

Teve um problema semelhante e o motivo foi a presença do arquivo de bloqueio do yum, /var/run/yum.pidonde uma execução anterior do yum o deixou devido a um erro fatal.

Eu o removi sudo rm /var/run/yum.pide o problema foi resolvido.

bekce
fonte
0

Desculpe, não tenha reputação suficiente para perguntar sobre este comentário acima:

Tentando esta solução, notei que tudo correria bem ao usar --noplugins. Após uma pesquisa binária entre os plugins, descobri que o gerenciador de assinaturas era o responsável por todo o problema. Eu desativei e voilà! - Mariuslp

@mariuslp, também só posso executar o yum adicionando --noplugins. Você pode fornecer mais detalhes sobre como você fez uma "pesquisa binária entre os plug-ins" e o que nessa pesquisa levou a determinar o que estava causando o problema? Obrigado!

cniggeler
fonte