Causas
Esse erro ocorre quando o yum não encontra os metadados necessários do repositório no caminho configurado. As possíveis causas incluem:
Fim da vida útil (EOL) do sistema operacional: O fornecedor do SO moveu os repositórios yum oficiais da versão EOL para um servidor de arquivamento (vault), o que invalida as URLs originais dos espelhos. Altere a fonte do espelho para o repositório de arquivamento. Para mais informações, consulte como lidar com o EOL do SO.
Proxy HTTP incorreto nas variáveis de ambiente: Um proxy HTTP ou HTTPS incorreto nas variáveis de ambiente (por exemplo, no arquivo
/etc/profile) impede a conexão do yum com o servidor espelho. Para mais informações, consulte verificar e corrigir configurações incorretas de variáveis de ambiente.Pacote centos-release ausente: A ausência desse pacote impede o yum de encontrar repositórios disponíveis. O yum não consegue resolver variáveis nos arquivos de configuração e gera URLs incorretas. Para mais informações, consulte instale o pacote centos-release.
Solução
Lidar com o EOL do SO
Sistemas EOL representam um risco de segurança porque não recebem mais atualizações de segurança. As etapas a seguir são uma solução temporária. Recomendamos fortemente que você substitua e migre o sistema operacional o mais rápido possível.
CentOS 6
-
Faça backup dos arquivos de configuração de origem.
# Back up the Base source configuration. sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # Back up the EPEL source configuration. sudo cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup -
Altere o repositório Base para o espelho de arquivamento.
sudo vim /etc/yum.repos.d/CentOS-Base.repoSubstitua o conteúdo do arquivo
CentOS-Base.repopelo seguinte:[base] name=CentOS-6.10 enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos-vault/6.10/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos-vault/RPM-GPG-KEY-CentOS-6 [updates] name=CentOS-6.10 enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos-vault/6.10/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos-vault/RPM-GPG-KEY-CentOS-6 [extras] name=CentOS-6.10 enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos-vault/6.10/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos-vault/RPM-GPG-KEY-CentOS-6 -
Altere o repositório
EPELpara o espelho de arquivamento.vim /etc/yum.repos.d/epel.repoSubstitua o conteúdo do arquivo
epel.repopelo seguinte:[epel] name=Extra Packages for Enterprise Linux 6 - $basearch enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/epel-archive/6/$basearch gpgcheck=0 gpgkey=http://mirrors.cloud.aliyuncs.com/epel-archive/RPM-GPG-KEY-EPEL-6 Execute o comando
yum repolist. Se a listagem de repositórios ocorrer sem o erro 404, o problema estará resolvido.
CentOS 7
-
Faça backup do arquivo de configuração de origem.
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup -
Baixe o novo arquivo de configuração de origem.
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo -
Limpe e reconstrua o cache do yum.
yum clean all && yum makecache Execute
yum repolist. Se a listagem de repositórios ocorrer sem o erro 404, o problema estará resolvido.
Verificar e corrigir configurações incorretas de variáveis de ambiente
-
Verifique as variáveis de ambiente de proxy.
echo $http_proxy echo $https_proxy -
Remova a configuração de proxy. Se a etapa anterior retornar um endereço de proxy, edite o arquivo
/etc/profile. Localize as linhas que contêmexport http_proxy=ouexport https_proxy=e comente-as adicionando um#no início de cada linha.sudo vim /etc/profile# export http_proxy="http://your.proxy.address:port" # export https_proxy="https://your.proxy.address:port" Execute o comando
yum repolist. Se a listagem de repositórios ocorrer sem o erro 404, o problema estará resolvido.
Instale o pacote centos-release
-
Verifique se o pacote está instalado.
Se o comando retornar
package centos-release is not installed, instale o pacote.sudo rpm -q centos-release -
Baixe o pacote.
Acesse o site oficial de espelhos, encontre a versão mais recente do pacote
centos-release-*.rpme copie seu link.Substitua
<URL>pelo link copiado.sudo wget <URL>Por exemplo, para o CentOS 7,
<URL>éhttps://mirrors.aliyun.com/centos/7/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm. -
Instale o pacote.
Substitua
<file_name>pelo nome do arquivo do pacote baixado.sudo rpm -ivh <file_name>Por exemplo, para o CentOS 7,
<file_name>écentos-release-7-9.2009.0.el7.centos.x86_64.rpm. Execute o comando
yum repolist. Se a listagem de repositórios ocorrer sem o erro 404, o problema estará resolvido.