A atualização do yum falha: Erro: Não é possível recuperar os metadados do repositório (repomd.xml) para o repositório…

34

Estou usando o CentOS 6.3. Quando tento atualizar meu sistema com o yum, tenho esta mensagem:

yum update

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ircam.fr
 * centosplus: miroir.univ-paris13.fr
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum clean all

Loaded plugins: fastestmirror
Cleaning repos: CactiEZ addons base centosplus extras pgdg93 update
Cleaning up Everything
Cleaning up list of fastest mirrors

yum check

Loaded plugins: fastestmirror
check all

yum erase apf

Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: apf
Determining fastest mirrors
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
CactiEZ                                                | 2.9 kB     00:00
CactiEZ/primary_db                                     |  13 kB     00:00
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum upgrade

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

Meu yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
az93
fonte
11
desde ontem você fez muitas perguntas sobre problemas de conectividade com a Internet e problemas de caminho da yum, você já pensou em reinstalar o sistema? É parece muito f $$$ ed up
kiwy
Você precisa corrigir a conectividade com a Internet primeiro. A reinstalação pode ser uma opção. Ou tente inicializar um sistema de CD ao vivo.
Peterph
Resolvi o problema excluindo a pasta "yum.repos.d" e recrie um arquivo example.repo. adicionar detalhes de reporte a partir daqui: linuxquestions.org/questions/linux-newbie-8/...
Yang

Respostas:

33

Seu ca-bundles.crt é muito antigo. Uma solução alternativa até você atualizar para uma versão mais recente do CentOS seria alterar o epel.repo de https para http

sudo sed -i 's/https/http/g' /etc/yum.repos.d/epel.repo
RobertDeRose
fonte
2
+1 Spot on. Mas você não precisa atualizar o CentOS para obter o pacote de certificação mais recente (devido ao suporte de longo prazo do CentOS). yum update ca-certificatesdeve fazer o truque (depois de desativar o https para epel ou pegar o rpm diretamente e atualizar usando o rpm).
Kev
@ kev Bem, em teoria, seu comentário deve funcionar, mas, infelizmente, para mim, quando pergunto yum to update ca-certificates, recebo "Nenhum pacote marcado para atualização" . De fato, quando eu faço yum list | grep ca-certificatesisso, recebo este ca-certificates.noarch 2010.63-3.el6_1.5 como a versão mais recente na minha caixa do CentOS 6.4. Na minha caixa do CentOS 6.5, recebo ca-certificate.noarch 2014.1.98-65.1.el6 Parece que você precisa pelo menos atualizar para o CentOS 6.5 para obter os mais recentes certificados de certificação do CentOS ou obter manualmente a rpm e instalá-la .
RobertDeRose
@Kev Rob acertou em cheio. Muitas empresas ainda estão em distros muito antigos. Atualmente, estou trabalhando no CentOS4.5 para um cliente e preciso fazer muitas coisas que normalmente não deveriam ser feitas.
SgtPooki
@ RobD Parece que o OP está usando http e, quando me deparei com o mesmo problema, eu também estava usando http, não https. Então, estou curioso para saber como você deduziria que os certificados raiz ssl ca sendo desatualizados são a causa raiz?
Dwight Spencer
@DwightSpencer desculpe, não estou entendendo sua pergunta, o que é OP? Deduzi que meus certificados de raiz ssl ca eram o problema, porque na minha antiga caixa do CentOS 6.2 não era possível atualizar, mas na minha caixa da 6.6. Simplesmente mudar de https para http resolveu o problema. Eu mais ou menos apenas reduzi a isso.
RobertDeRose
16

Tente isto (tem que ser root)

yum clean all
yum check
yum erase apf
yum update ca-certificates
yum upgrade
SHW
fonte
Veja a edição
az93 16/01
Yay! Funcionou :)
facundofarias
11
Funcionou perfeitamente e isso é muito mais limpo do que algumas outras respostas neste tópico.
Dwight Spencer
Eu tive que adicionar um yum update --disableplugin fastestmirrorpasse lá, porque uma dessas etapas (provavelmente yum clean) removeu as informações necessárias para entrar em contato com os espelhos. Eu disse "não" quando se ofereceu para fazer a atualização, depois fez uma planície yum updatee conseguiu desta vez. Acredito que o primeiro passe fez com que ele baixasse uma nova lista de espelhos do site principal do CentOS, que permitiu que o segundo passe fosse bem-sucedido.
Warren Young
6

Digite " http://mirror.centos.org/centos/6 " no seu navegador e veja "addons" não existe.

então tente yum --disablerepo=addons update

Amauche
fonte
Então, o que eu devo fazer?
2193 de az93
yum --disablerepo = atualização de complementos
Amauche
Mesmo problema ...
az93 16/01
podemos ver seu yum conf?
Amauche 16/01
Veja a edição
az93 16/01
3

O problema para mim foi que os repositórios usam https e isso não funciona.

cd /etc/yum.repos.d/
grep -RFi "https" *

Isso mostra em quais arquivos de recompra https é usado. Abra-os em um editor e torne-o http. Para mim, isso resolveu o problema.

SPRBRN
fonte
3

Todas as respostas anteriores não funcionaram para mim, mas a execução dos seguintes comandos funcionou:

$ sudo yum remove centos-release-SCL
$ sudo yum update # Update to CentOS 6.8
$ sudo yum install centos-release-scl
$ sudo yum update

O que recebi desta postagem no blog .

Roy Hinkley
fonte
2

Se você usa o 6.5, não sei por que, mas não existe o diretório 6.5 no repositório oficial do yum para o centOS. Todos os pacotes retornarão um código de status 404

Se você tentar isso: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm, você receberá um 404, mas se tentar a versão 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm funciona.

Jefferson Souza
fonte
1

Se você executar "yum update" ou "yum upgrade" sem nenhum outro parâmetro, todos os pacotes do seu sistema, incluindo o yum, serão atualizados, portanto, não há necessidade de atualizar o yum por si só, a menos que você esteja atualizando as versões do Fedora ou CentOS.

Ankur Loriya
fonte
Na verdade, eu preciso instalar o ftp. Mas quando eu uso o yum install ftp, fico com o mesmo problema.
az93 16/01
1

Eu instalei o CentOS via Vagrant, e ele veio com o /etc/yum.repos.d/diretório pré-preenchido com coisas do tipo puppet.repo. Eis que e puppet.repooutros compromissos incluídos não apontaram para recursos válidos.

Então eu os removi e o yum funciona agora.

David West
fonte
1

No meu caso, o que é realmente excepcional, a localização do arquivo XML que contém as informações do repositório é alterada.

  • Eu tenho conexão com a Internet ( ping 8.8.8.8funciona)
  • Quando executo yum upgrade, após muitos 404erros, consigo os nomes dos pacotes que devo baixar, mas não consigo baixá-los.

E, quando eu navego para o primeiro URL de repo 404, que é:

http://mirror.airenetworks.es/CentOS/7.4.1708/os/x86_64/repodata/repomd.xml

e eu vejo isso ausente. Indo para a pasta pai http://mirror.airenetworks.es/CentOS/7.4.1708/readme, recebo o seguinte:

Este diretório (e versão do CentOS) está obsoleto. Para usuários normais, você deve usar / 7 / e não /7.4.1708/ no seu caminho. Consulte esta FAQ sobre o esquema de lançamento do CentOS:

https://wiki.centos.org/FAQ/General

Se você sabe o que está fazendo e deseja absolutamente permanecer no nível 7.4.1708, acesse http://vault.centos.org/ para obter pacotes.

Lembre-se de que o 7.4.1708 não recebe mais atualizações nem correções de segurança.

Então, eu tenho que voltar /etc/yum.repo.dpara editar os arquivos.

Eu tenho:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Suspeito que $releasevernão esteja mais em uso, para que eu possa testar alterando-o para 7: (lembre-se de fugir &com \)

curl http://mirrorlist.centos.org/?release=7\&arch=x86_64\&repo=os\&infra=arch

podemos obter uma lista de arquivos:

ftp://ftp.cesca.cat/centos/7.5.1804/os/x86_64/
http://ftp.rediris.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cica.es/CentOS/7.5.1804/os/x86_64/
http://centos.mirror.minorisa.net/7.5.1804/os/x86_64/
http://repo.nixval.com/CentOS/7.5.1804/os/x86_64/
http://centos.uvigo.es/7.5.1804/os/x86_64/
http://ftp.uma.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cixug.es/CentOS/7.5.1804/os/x86_64/
http://mirror.airenetworks.es/CentOS/7.5.1804/os/x86_64/
http://mirror.gadix.com/centos/7.5.1804/os/x86_64/

Então, podemos definir a variável assim:

  1. Abra o /etc/yum.repo.d/CentOS-Base.repo
  2. Na [base]seção, definir: releasever=7.
  3. Execute novamente yum upgradeou yum install xxx.
WesternGun
fonte