erro yum “Não é possível recuperar metalink para repositório: epel. Verifique seu caminho e tente novamente ”atualizando ContextBroker


106

Estou tentando atualizar o Orion ContextBroker usando o comando yum install contextBroker. Infelizmente, recebo o seguinte erro:

Plugins carregados: fastmirror, refresh-packagekit, security Loading

velocidades de espelho do arquivo host em cache

Erro: Não é possível recuperar metalink para o repositório: epel. Verifique seu caminho e tente novamente

O que poderia dar errado ?


3
Etapa de solução de problemas sugerida: seu sistema pode curl -v https://mirrors.fedoraproject.org?
mwfearnley de

A resposta selecionada é uma solução alternativa que não corrige o problema raiz e, de fato, a instalação do pacote pode continuar falhando. Sugiro desmarcar a melhor resposta e deixar a contagem de votos classificar as respostas para aquela que funcionou para a maioria das pessoas.
Paulo

Respostas:


125

Resolvi esse problema editando os arquivos /etc/yum.repos.d/epel.repoe /etc/yum.repos.d/epel-testing.repo, comentando todas as entradas começando com mirrorlist=...e removendo o comentário de todas as entradas começando com baseurl=....


No meu caso, essa correção permitiu que o yum baixasse metadados com sucesso para o repo epel, mas a tentativa de instalar os pacotes falhou com [Errno 14] Peer cert cannot be verified or peer cert invalid. A correção correta foi atualizar os certificados ca, como na resposta abaixo.
banho de

3
comentar todas as entradas começando com metalink = ... e descomentar todas as entradas começando com baseurl = .... funcionou para mim no RHEL7.1
Anurag Singh

1
Tentei seu método e yum clean all && yum updatefuncionou. Mas não completamente, dizia epel-release-7-11.noarch: [Errno 256] No more mirrors to tryetc. Então tentei yum update curl --disablerepo=epelcomo sbetharia sugeriu, e tentei de yum clean all && yum updatenovo, finalmente funcionou agora.
Hosi Golden

Funcionou para mim. Muito obrigado.
tarekahf

3
Eu não tinha mirrorlist=falas, mas tinha metalink=falas, e elas precisavam ser comentadas.
JellicleCat

170

Você só precisava atualizar o pacote de certificados ca. Antes disso, basta desabilitar todos os repositórios com https que estão falhando. É por isso que a solução com comentar mirrorlist ou usar http em vez de https funcionaria também.

Por exemplo, se você precisar desativar apenas o repo epel:

yum --disablerepo=epel -y update  ca-certificates

Isso também ajudará wget, curl e qualquer outra coisa que use certificados SSL.


9
Isso deve ser aceito como a resposta correta, pois diagnostica a verdadeira origem do problema, ao invés de apenas fornecer uma solução alternativa.
Horatio Alderaan

1
Eu testei isso na caixa do bento CentOS 6.5 e torna as coisas um pouco mais confiáveis ​​durante a execução yum clean all && yum makecache. No entanto, às vezes ainda falha. Adicionar uma nova tentativa ao meu script o tornou ainda mais confiável. Eu suspeito que alguns espelhos não são confiáveis ​​e uma nova tentativa pode dar outro espelho que funcione. Portanto, se não der certo na primeira vez, tente novamente!
TrinitronX

1
Bem, isso vem da experiência, e sim, a mensagem é enigmática :)
XoR

2
certifique-se de que você esteja usando um proxy corporativo também para configurá-lo para https, por exemploexport https_proxy=<your proxy>
Markus

3
O RPM epel-repo deve ter certificados ca tem dependência !!
Stéphane

59

use este comando:

sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

ou, alternativamente, use o comando

vi /etc/yum.repos.d/epel.repo

vá para a linha número 4 e altere o url de

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

para

mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

Obrigado; isso funcionou para mim depois de tentar muitas das outras soluções documentadas (meu erro foi, Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). Minha pergunta é: por que isso funcionou? isso é devido a um problema de configuração no site do repositório?
CODE-REaD

1
Provavelmente não o servidor HTTPS, mas o suporte do lado do cliente HTTPS em sistemas pode ficar desatualizado, pois as autoridades de certificação raiz não são atualizadas ou as bibliotecas SSL não oferecem suporte a novas cifras.
mwfearnley de

Depois de muitas tentativas, resolvido com seu comando sed. Apenas Copiar + Colar, era o que eu precisava porque normalmente não sou responsável por esse tipo de coisa, apenas instalando um computador de teste para ser usado apenas por mim para testar algumas atualizações do banco de dados.
EAmez

1
No Cent OS 7.6, este ésudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

19

No meu caso, comentar mirrorliste descomentar entradas com não baseurlfuncionou. Percebi que o problema era com o lado httpsinterno do.repo arquivos fedora. Eu resolvi isso entrando /etc/yum.repository.de substituindo todos httpspor httparquivos .repo diferentes. Isso funcionou!!


Isso provavelmente tem a ver com um proxy definido em /etc/yum.conf (proxy da empresa)?
Christof Kälin de

19

Eu acho que isso deve funcionar. Resolvi meu problema com isso.

$ sudo yum limpar tudo

$ sudo yum --disablerepo = atualização "epel" nss


3
Este woks para Centos 6.8. Obrigado
neo

1
Isso também resolveu meu problema, estou curioso para saber por que o update nssajuda a resolver esse problema ?!
KLajdPaja

12

Atualizar o curl funcionou para nós. De alguma forma, o yum usa curl para suas transações.

yum update curl --disablerepo=epel

Sua resposta é melhor do que a aceita, não é necessário alterar epel.repo ou epel-testing.repo.
Hosi Golden

Eu rastreei isso e atualizei o curl antes de ler esta ou algumas das outras respostas. Vejo que atualizar o curl também atualizou o nss ... então me pergunto se esse era o problema. No meu caso, eu curvei a URL do metalink, vi que falhou e funcionou com --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ). O curl presumido estava desatualizado e o atualizou. Então agora eu me pergunto se o NSS poderia ter sido atualizado sem atualizar o curl e teria funcionado ou não.
Paulo

9

Verifique se você acessa a Internet por meio de um proxy e, em seguida, adicione o endereço de proxy da Internet à yumconfiguração.

adicionar

proxy=http://ip:port

para /etc/yum.conf


2
certifique-se de ter o proxy https também especificado.
Markus

1
isso funcionou para mim, mas apenas com o seguinte parâmetro adicional:proxy_username=your_user proxy_password=your_passwd
MaggusK

7

Etapas de passo a passo

Executar o seguinte comando atualizará o repo para usar HTTP em vez de HTTPS:

sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

Você deve ser capaz de atualizar com este comando:

yum -y update

A única solução que funciona para mim! Todos os outros não mudaram nada (preciso de pacotes epel).
KuroNeko

No Cent OS 7.6, este ésudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

6

Você pode encontrar esta mensagem / erro, após instalar o epel-release. A solução rápida é atualizar seus certificados SSL:

yum -y upgrade ca-certificates

Provavelmente, o erro acima também pode ocorrer durante a atualização do certificado; em caso afirmativo, apenas desative o epelrepo, ou seja, use o seguinte comando:

yum -y upgrade ca-certificates --disablerepo=epel 

Assim que os certificados forem atualizados, você poderá usar o yum normalmente, até mesmo o repo epel funcionará bem. Caso você esteja recebendo o mesmo erro para um repositório diferente, apenas coloque seu nome no --disablerepo=<repo-name>sinalizador.


Nota : use sudose você não for o rootusuário.


1
Essa é a melhor resposta para mim :)
qingbo

5

Resolvi este problema com esta solução.

você acabou de alterar neste arquivo /etc/yum.repos.d/epel.repo

mirrorlist = mude este url https para http

baseurl = mude este url https para http


4

Todas as opções acima não funcionaram para mim, mas uma reconstrução do banco de dados rpm, com o seguinte comando, funcionou:

sudo rpm --rebuilddb

Obrigado a todos pela ajuda.


1
Tive que usar baseurl em vez de mirrorlist (resposta aceita) antes de fazer isso
Telmo Pimentel Mota

3

Para caixas que não têm acesso à Internet, você pode remover o epelrepositório:

yum remove epel-release --disablerepo=epel

Isso aconteceu comigo quando instalei acidentalmente epel-releaseusando rpmem uma caixa de produção.


3

Eu encontrei o mesmo problema, embora o pacote ca-certificados esteja atualizado. O espelho https://mirrors.fedoraproject.org/ está atualmente assinado pelo DigiCert High Assurance EV Root CAqual está incluído no meuca-bundle

$ grep -A 3 "DigiCert High" /etc/ssl/certs/ca-bundle.crt 
# DigiCert High Assurance EV Root CA
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3

A razão pela qual as conexões https falharam no meu caso, foi que a data do sistema foi definida para o ano de 2002 em que o DigiCert High Assurance EV Root CA(ainda) não é válido.

$ date
Di 1. Jan 11:10:35 CET 2002

Alterar a hora do sistema corrigiu o problema.


Muito obrigado por esta resposta. O senhor é uma lenda
Tony Sepia

2

Eu resolvi isso indo em /etc/yum.repository.d/. No meu caso, eu comento a lista de espelhos e entradas não comentadas com baseurl. bem como adicionado sslverify = false.

/server/637549/epel-repo-for-centos-6-causing-error


Não apenas isso, mas também alterando os URLs para archives.fedoraproject.org/pub/archive/fedora/linux/releases/… (para fedora.repo e fedora-updates.repo). Observe os "arquivos" na frente e o "pub / arquivo" no caminho)
dagelf

yum install -y yum-utils --disablerepo = epel && yum-config-manager --save --setopt = epel.sslverify = false
Andrei Sedoi

2

Eu contornei esse problema alterando as entradas https no arquivo epel.repo para http.


1

No meu caso, quando comento a lista de espelhos, o erro escapou, mas o repo também não estava funcionando, então eu aponto manualmente a baseurl correta /etc/yum.repos.d/epel.repocomo abaixo

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://iad.mirror.rackspace.com/epel/7Server/x86_64/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://iad.mirror.rackspace.com/epel/7Server/x86_64/debug/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://iad.mirror.rackspace.com/epel/7Server/SRPMS/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1


0

Alterar o URL da lista de espelhos de https para http corrigiu o problema para mim.


0

O meu consertou assim:

yum install elfutils-default-yama-scope-0.168-8.el7.noarch --disablerepo=epel
yum install nss-pem -disablerepo=epel
yum reinstall ca-certificates --disablerepo=epel
yum clean all
rm -rf /var/cache/yum
yum update`

0

Nada disso funcionou para mim (eu nem mesmo tentei os hacks como editar manualmente o arquivo repo).

No entanto, funcionou após um simples yum update -y


0

Outra causa possível é que sua arquitetura não é compatível. Eu me deparei com isso porque recebi um CentOS VM, queria instalar a EPEL e não pude por nada.

Acontece que a VM era CentOS 7 i386, que é uma arquitetura que aparentemente não é mais suportada pela EPEL. Eu acho que o único remédio neste caso é reinstalar.

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.