Todos os produtos
Search
Central de documentação

Elastic Compute Service:Adicionar ou corrigir repositórios de software da Alibaba Cloud para instâncias Linux

Última atualização: Aug 25, 2026

No Linux, os repositórios de software armazenam pacotes. Após adicionar um repositório, use uma ferramenta de gerenciamento de pacotes para localizar, instale ou atualize esses pacotes. Esse processo simplifica a operação e manutenção do sistema e apoia o desenvolvimento de aplicações. Este tópico explica como gerencie e utilizar repositórios de software em várias distribuições Linux, tomando os repositórios da Alibaba Cloud como exemplo.

Contexto

A velocidade de acesso a um repositório de software depende de fatores como região geográfica e distância. O site de imagens open source da Alibaba Cloud aproveita a infraestrutura da Alibaba Cloud para oferecer um service de espelhamento gratuito, de alta velocidade e completo. Esse service inclui espelhos de repositórios para as principais distribuições Linux, como CentOS, Debian, Ubuntu, Fedora e openSUSE. O repositório é gratuito tanto para usuários da Alibaba Cloud quanto para usuários externos.

Importante
  • Por padrão, os repositórios nas imagens públicas da Alibaba Cloud utilizam os endereços de repositório privado para ecs do site de espelhamento da Alibaba Cloud. Usuários de ecs podem usar esses repositórios diretamente, sem configuração manual. Caso precise adicionar ou corrigir manualmente um repositório para sua distribuição Linux, consulte este tópico.

  • Este tópico utiliza o endereço de repositório público http://mirrors.aliyun.com, destinado a sistemas Linux com conexão à internet. Se o servidor for uma instância ecs da Alibaba Cloud, utilize o endereço de repositório privado para ecs, http://mirrors.cloud.aliyuncs.com, para obter downloads mais rápidos.

Adicionar um repositório de software da Alibaba Cloud

  1. Conecte-se à instância Linux

    Para mais informações, consulte Log in to a Linux instance by using Workbench. O exemplo de login neste tópico utiliza o ecs-user. Você também pode usar outros métodos de login.

  2. Adicione o repositório de software da Alibaba Cloud

    Nota

    As seções a seguir descrevem como adicionar o repositório da Alibaba Cloud para algumas distribuições Linux comuns. Siga as instruções correspondentes à versão do seu sistema operacional.

    Alibaba Cloud Linux 3/2

    1. Execute o comando a seguir para fazer backup do repositório original.

      sudo mv /etc/yum.repos.d/AliYun.repo /etc/yum.repos.d/AliYun.repo.backup
    2. Execute o comando a seguir para adicionar o novo repositório.

      Alibaba Cloud Linux 3

      sudo rpm -Uvh --reinstall https://mirrors.aliyun.com/alinux/3/updates/x86_64/Packages/alinux-repos-3.2104.12-1.al8.x86_64.rpm

      Alibaba Cloud Linux 2

      sudo rpm -Uvh --reinstall https://mirrors.aliyun.com/alinux/2/updates/x86_64/Packages/alinux-release-2.1903-11.al7.x86_64.rpm
    3. Execute o comando a seguir para gerar um cache local e acelerar a busca e instalação de pacotes.

      sudo yum clean all && sudo yum makecache

    CentOS 8/7/6

    1. Execute o comando a seguir para fazer backup do repositório original.

      sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    2. Execute o comando a seguir para adicionar o repositório da Alibaba Cloud.

      CentOS 8

      url=https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo;if [ -f /usr/bin/curl ];then sudo curl -sSo /etc/yum.repos.d/Centos-vault-8.5.2111.repo $url;else sudo wget -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo $url; fi

      CentOS 7

      url=https://mirrors.aliyun.com/repo/Centos-7.repo;if [ -f /usr/bin/curl ];then sudo curl -sSO $url;else sudo wget -O /etc/yum.repos.d/Centos-7.repo $url; fi

      CentOS 6

      url=https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo;if [ -f /usr/bin/curl ];then sudo curl -sSL -o /etc/yum.repos.d/Centos-vault-6.10.repo $url;else sudo wget -O /etc/yum.repos.d/Centos-vault-6.10.repo $url; fi
    3. Execute o comando a seguir para gerar um cache local e acelerar a busca e instalação de pacotes.

      sudo yum clean all && sudo yum makecache

    Ubuntu

    1. Execute o comando a seguir para fazer backup do repositório original.

      sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
    2. Execute o comando a seguir para crie e abrir o arquivo de configuração.

      sudo vim /etc/apt/sources.list
    3. Pressione i para entrar no modo de inserção e adicione a configuração do repositório correspondente à sua versão do Ubuntu ao arquivo.

      Ubuntu 24.04

      deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
      
      # deb https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
      # deb-src https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse

      Ubuntu 23.04

      deb https://mirrors.aliyun.com/ubuntu/ lunar main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ lunar main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ lunar-security main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ lunar-security main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ lunar-updates main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ lunar-updates main restricted universe multiverse
      
      # deb https://mirrors.aliyun.com/ubuntu/ lunar-proposed main restricted universe multiverse
      # deb-src https://mirrors.aliyun.com/ubuntu/ lunar-proposed main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ lunar-backports main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ lunar-backports main restricted universe multiverse

      Ubuntu 22.04

      deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
      
      # deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
      # deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
      

      Ubuntu 20.04

      deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      
      # deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
      # deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

      Ubuntu 18.04

      deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      
      # deb https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      
      deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    4. Pressione Esc, insira :wq e pressione Enter para salve e fechar o arquivo de configuração.

    5. Execute o comando a seguir para atualize o índice local de pacotes.

      sudo apt update

    Debian

    1. Execute o comando a seguir para fazer backup do repositório original.

      sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
    2. Execute o comando a seguir para crie e abrir o arquivo de configuração.

      sudo vim /etc/apt/sources.list
    3. Pressione i para entrar no modo de inserção e adicione a configuração do repositório correspondente à sua versão do Debian ao arquivo.

      Debian 11.x

      deb http://mirrors.cloud.aliyuncs.com/debian/ bullseye main non-free contrib
      deb-src http://mirrors.cloud.aliyuncs.com/debian/ bullseye main non-free contrib
      deb http://mirrors.cloud.aliyuncs.com/debian-security/ bullseye-security main
      deb-src http://mirrors.cloud.aliyuncs.com/debian-security/ bullseye-security main
      deb http://mirrors.cloud.aliyuncs.com/debian/ bullseye-updates main non-free contrib
      deb-src http://mirrors.cloud.aliyuncs.com/debian/ bullseye-updates main non-free contrib

      Debian 10.x

      deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster main non-free contrib
      deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security buster/updates main
      deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster-updates main non-free contrib
      deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster main non-free contrib
      deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security buster/updates main
      deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster-updates main non-free contrib

      Debian 9.x

      deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch main contrib non-free
      #deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-proposed-updates main non-free contrib
      #deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-backports main non-free contrib
      deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security stretch/updates main contrib non-free
      deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch main contrib non-free
      #deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-proposed-updates main contrib non-free
      #deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-backports main contrib non-free
      deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security stretch/updates main contrib non-free

      Debian 8.x

      deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ jessie main non-free contrib
      deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ jessie main non-free contrib
    4. Pressione Esc, insira :wq e pressione Enter para salve e fechar o arquivo de configuração.

    5. Execute o comando a seguir para atualize o índice local de pacotes.

      sudo apt update

    Fedora

    1. Execute os comandos a seguir para fazer backup dos repositórios originais.

      sudo mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.backup
      sudo mv /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.backup
    2. Execute o comando a seguir para adicionar o repositório Fedora da Alibaba Cloud.

      url=http://mirrors.aliyun.com/repo/fedora.repo;if [ -f /usr/bin/curl ];then sudo curl -sSO $url;else sudo wget -O /etc/yum.repos.d/fedora.repo $url; fi
    3. Execute o comando a seguir para adicionar o repositório fedora-updates da Alibaba Cloud.

      url=http://mirrors.aliyun.com/repo/fedora-updates.repo;if [ -f /usr/bin/curl ];then sudo curl -sSO $url;else sudo wget -O /etc/yum.repos.d/fedora-updates.repo $url; fi
    4. Execute o comando a seguir para gerar um cache local e acelerar a busca e instalação de pacotes.

      sudo yum clean all && sudo yum makecache

    openSUSE 15.6

    1. Execute o comando a seguir para fazer backup dos repositórios originais.

      sudo rename '.repo' '.repo.backup' /etc/zypp/repos.d/openSUSE*.repo
    2. Execute os comandos a seguir para adicionar os repositórios da Alibaba Cloud.

      sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.6/repo/oss/ openSUSE-15.6-Oss
      sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.6/repo/non-oss/ openSUSE-15.6-Non-Oss
      sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/update/leap/15.6/oss/ openSUSE-15.6-Update-Oss
      sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/update/leap/15.6/non-oss/ openSUSE-15.6-Update-Non-Oss
    3. Execute o comando a seguir para atualize os repositórios.

      sudo zypper ref

Gerencie software com gerenciadores de pacotes

No Linux, use uma ferramenta de gerenciamento de pacotes para administrar os pacotes disponíveis em um repositório. As ferramentas mais comuns incluem yum, dnf, apt e zypper. Este tópico demonstra como usar essas ferramentas para buscar, instale, atualize e remover software em diferentes sistemas operacionais. Nos exemplos, substitua o nome do pacote de exemplo pelo pacote desejado.

Nota

Os pacotes em uma distribuição Linux recebem atualizações contínuas para adicionar novos recursos, corrigir bugs e fornecer atualizações de segurança. Atualize os pacotes para suas versões mais recentes conforme necessário.

Alibaba Cloud Linux / CentOS / Fedora

  • Buscar um pacote

    Execute o comando a seguir para localizar pacotes com a ferramenta yum.

    sudo yum search <package-keyword>

    Por exemplo, para buscar pacotes que contenham a palavra-chave nginx, execute o seguinte comando.

    sudo yum search nginx
  • Instale um pacote

    Execute o comando a seguir para instale um pacote usando a ferramenta yum.

    sudo yum install <package-name>

    Por exemplo, para instale o pacote nginx, execute o seguinte comando.

    sudo yum install nginx
  • Reinstalar um pacote

    Execute o comando a seguir para reinstalar pacotes já instalados com a ferramenta yum.

    sudo yum reinstall <package-name>

    Por exemplo, para reinstalar o pacote nginx, execute o seguinte comando.

    sudo yum reinstall nginx
  • Atualize um pacote

    Execute o comando a seguir para atualize pacotes usando a ferramenta yum.

    sudo yum update <package-name>

    Por exemplo, para atualize o pacote nginx, execute o seguinte comando.

    sudo yum update nginx
  • Remover um pacote

    Execute o comando a seguir para remover o pacote usando a ferramenta yum.

    sudo yum remove <package-name>

    Por exemplo, para remover o pacote nginx, execute o seguinte comando.

    sudo yum remove nginx

Ubuntu / Debian

  • Buscar um pacote

    Execute o comando a seguir para buscar um pacote usando a ferramenta apt.

    sudo apt search <package-keyword>

    Por exemplo, para buscar pacotes que contenham a palavra-chave nginx, execute o seguinte comando.

    sudo apt search nginx
  • Instale um pacote

    Execute o comando a seguir para instale o pacote com a ferramenta apt.

    sudo apt install <package-name>

    Por exemplo, para instale o pacote nginx, execute o seguinte comando.

    sudo apt install nginx
  • Reinstalar um pacote

    Execute o comando a seguir para reinstalar pacotes já instalados com a ferramenta apt.

    sudo apt install --reinstall <package-name>

    Por exemplo, para reinstalar o pacote nginx, execute o seguinte comando.

    sudo apt install --reinstall nginx
  • Atualize um pacote

    Execute o comando a seguir para atualize pacotes usando a ferramenta apt.

    sudo apt upgrade <package-name>

    Por exemplo, para atualize o pacote nginx, execute o seguinte comando.

    sudo apt upgrade nginx
  • Remover um pacote

    Execute o comando a seguir para remover o pacote usando a ferramenta apt.

    sudo apt remove <package-name>

    Por exemplo, para remover o pacote nginx, execute o seguinte comando.

    sudo apt remove nginx

openSUSE

  • Buscar um pacote

    Execute o comando a seguir para buscar pacotes usando a ferramenta zypper.

    sudo zypper search <package-keyword>

    Por exemplo, para buscar pacotes que contenham a palavra-chave nginx, execute o seguinte comando.

    sudo zypper search nginx
  • Instale um pacote

    Execute o comando a seguir para instale o pacote usando a ferramenta zypper.

    sudo zypper install <package-name>

    Por exemplo, para instale o pacote nginx, execute o seguinte comando.

    sudo zypper install nginx
  • Reinstalar um pacote

    Execute o comando a seguir para reinstalar pacotes já instalados usando a ferramenta zypper.

    sudo zypper install --force <package-name>

    Por exemplo, para reinstalar o pacote nginx, execute o seguinte comando.

    sudo zypper install --force nginx
  • Atualize um pacote

    Execute o comando a seguir para atualize pacotes usando a ferramenta zypper.

    sudo zypper update <package-name>

    Por exemplo, para atualize o pacote nginx, execute o seguinte comando.

    sudo zypper update nginx
  • Remover um pacote

    Execute o comando a seguir para remover o pacote com a ferramenta zypper.

    sudo zypper remove <package-name>

    Por exemplo, para remover o pacote nginx, execute o seguinte comando.

    sudo zypper remove nginx

Perguntas frequentes

Erro "Failed to fetch"

Sintoma

Ao execute o comando a seguir para instale o pacote openjdk-7-jre-headless em uma instância ecs com Ubuntu 14.04, ocorre o erro "Failed to fetch".

apt-get install openjdk-7-jre-headless

O sistema exibe uma saída semelhante à seguinte.

Causa

A instância ecs está conectada a um repositório externo, o que impede a instalação do OpenJDK.

Resolução

  1. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Execute o comando a seguir para reinstalar o OpenJDK:

    apt-get install openjdk-7-jre-headless  --fix-missing

Erro "File contains no section headers"

Sintoma

Ao usar o comando yum para instale o MySQL em uma instância ecs com CentOS 7.0, ocorre o seguinte erro:

File contains no section headers.

Causa

O repositório não contém o pacote necessário.

Resolução

Siga estas etapas para alternar para o repositório oficial do CentOS.

  1. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Modifique o arquivo de configuração /etc/yum.repos.d/epel.repo.

    1. Execute o comando a seguir para edite o arquivo de configuração /etc/yum.repos.d/epel.repo:

      vim /etc/yum.repos.d/epel.repo
    2. Pressione a tecla i para entrar no modo de inserção e substitua o conteúdo do arquivo de configuração pelo seguinte:

      [epel-source]
      name=Extra Packages for Enterprise Linux 7 - $basearch - Source
      #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
      mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
      failovermethod=priority
      enabled=0
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
      gpgcheck=1
      
      [epel]
      name=Extra Packages for Enterprise Linux 7 - $basearch
      #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
      mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
      failovermethod=priority
      enabled=1
      gpgcheck=0
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
      
      [epel-debuginfo]
      name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
      #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
      mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
      failovermethod=priority
      enabled=0
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
      gpgcheck=1
    3. Após edite o arquivo, pressione a tecla Esc para sair do modo de inserção. Em seguida, insira :wq e pressione a tecla Enter para salve e fechar o arquivo.

  3. Execute os comandos a seguir em sequência para aplicar a nova configuração do repositório:

    yum makecache
    yum repolist
  4. Reinstale o MySQL. Se a mensagem de erro não aparecer mais, o problema estará resolvido.

"Error processing package install-info"

Sintoma

Ao usar o apt-get para instale software em uma instância ecs com Ubuntu, ocorre o erro "error processing package install-info (--configure)".

Causa

Esse problema pode ser causado por um pacote do Ubuntu corrompido, resultando em falha na instalação.

Resolução

Siga estas etapas para atualize o repositório APT e reinstalar o software.

  1. Conecte-se à instância Ubuntu.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Renomeie o diretório info.

    mv /var/lib/dpkg/info/ /var/lib/dpkg/info.bak.old/
  3. Crie um novo diretório info.

    mkdir /var/lib/dpkg/info/
  4. Execute o comando a seguir para atualize o repositório APT:

    apt-get update
  5. Execute o comando a seguir para reinstalar o software. Substitua xxxxx pelo nome do pacote que deseja reinstalar. Se a mensagem de erro não aparecer mais, o problema estará resolvido.

    apt-get install  xxxxx

Erro "Segmentation fault"

Sintoma

Ao usar o apt-get para instale ou atualize software em uma instância ecs com Ubuntu, ocorre o erro "Segmentation fault".

Causa

Esse problema pode ser causado por um conflito no cache do APT, resultando em falha na instalação ou atualização.

Resolução

Siga estas etapas para atualize o repositório APT.

  1. Conecte-se à instância Ubuntu.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Faça backup do diretório /var/cache/apt/.

  3. Após o backup, execute o comando a seguir para exclua todos os arquivos .bin do diretório /var/cache/apt/:

    rm /var/cache/apt/*.bin
  4. Execute o comando a seguir para atualize o repositório APT:

    apt-get update
  5. Verifique se é possível usar o apt-get sem erros.

    Nota

    Se ocorrer um erro "Segmentation fault" em uma instância com pouca memória, como 512 MB, execute o comando top para verificar o uso da memória. Interrompa processos não essenciais e tente novamente o comando apt-get.

Erro "Reading package lists"

Sintoma

Ao usar o apt-get para instale software em uma instância ecs com Ubuntu, aparece uma mensagem de erro semelhante à seguinte:

Reading package lists... Error! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/AZ.archive.ubuntu.com_ubuntu_dists_natty_main_i18n _Translation-en E: The package lists or status file could not be parsed or opened.

Causa

A lista de pacotes está corrompida, causando falha na instalação do software.

Resolução

Siga estas etapas para limpar a lista corrompida e regenerar a lista de atualizações.

  1. Execute o comando a seguir para limpar a lista corrompida do diretório:

    rm -rf /var/lib/apt/lists/*
  2. Execute o comando a seguir para regenerar a lista de atualizações:

    apt-get update

    image

  3. Instale o software novamente. Se a mensagem de erro não aparecer mais, o problema estará resolvido.

Erro "404 Not Found" do Apt-get

Sintoma

Ao execute o comando apt-get install unzip ou aptitude install unzip em uma instância ecs com Ubuntu, aparece a seguinte mensagem de erro:

Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]

Causa

Esse erro geralmente ocorre quando a versão do pacote esperada pelo sistema operacional é incompatível com a versão disponível no repositório APT. Como resultado, o apt-get solicita um recurso inexistente.

Resolução

Siga estas etapas para atualize o repositório APT.

  1. Conecte-se à instância Ubuntu.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Execute o comando a seguir para atualize o repositório APT:

    apt-get update
  3. Após atualize o repositório, use o comando apt-get install para instale o software necessário.

Erro KEYEXPIRED

Sintoma

Ao execute o comando apt-get update em uma instância ecs com Ubuntu, aparece a seguinte mensagem:

The following signatures were invalid: KEYEXPIRED 1544811256

Causa

A atualização falha porque a assinatura do repositório expirou.

Resolução

Siga estas etapas para atualize a chave expirada.

  1. Conecte-se à instância Ubuntu.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Execute o comando a seguir para obter a chave expirada:

    sudo apt-key list | grep -A 1 expired

  3. Execute o comando a seguir para atualize a chave expirada:

    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys [$Key]
    Nota

    Substitua [$Key] pela chave expirada obtida na etapa anterior.

  4. Execute o comando a seguir novamente para atualize o repositório APT:

    apt-get update

Falha em repositório YUM de terceiros

Sintoma

Em uma instância ecs que executa Alibaba Cloud Linux 2 e atende às seguintes condições, a instalação do pacote docker falha e o seguinte erro é relatado ao execute o comando yum install docker-ce usando os repositórios YUM de terceiros docker-ce e epel para CentOS 7.

  • Imagem: Alibaba Cloud Linux 2.1903 LTS 64 bits.

  • ID da imagem: aliyun_2_1903_x64_20G_alibase_20210325.vhd ou versão anterior.

Loaded plugins: fastestmirror, langpacks, update-motd
Loading mirror speeds from cached hostfile
  * epel: mirror.sjtu.edu.cn 
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found 
Trying other mirror.
Downloading packages:
docker-ce-20.10.6-3.el7.x86_64 FAILED
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found 
Trying other mirror.
docker-ce-rootless-extras-20.1 FAILED
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-rootless-extras-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found
 Trying other mirror. 

Error downloading packages:
  3:docker-ce-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.
  docker-ce-rootless-extras-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.

Causa

Os repositórios YUM de terceiros são projetados apenas para a distribuição CentOS 7. O valor $releasever do sistema operacional Alibaba Cloud Linux 2 difere do valor do sistema operacional CentOS 7. Essa discrepância faz com que o yum resolva para um endereço inválido, impedindo o download do pacote.

Nota

Ao instale o pacote docker-ce usando o yum, o yum primeiro obtém o número de versão do sistema, que é o valor $releasever. Em seguida, ele substitui a variável $releasever no endereço baseurl do repositório YUM correspondente por esse valor. O yum então busca dados no endereço resultante. Como o valor $releasever é 7 para o sistema operacional CentOS 7 e 2.1903 para o sistema operacional Alibaba Cloud Linux 2, que usa o valor $releasever, o endereço baseurl resolvido não é o endereço esperado. Consequentemente, o yum não consegue buscar dados nesse endereço incorreto.

Resolução

Escolha uma das soluções a seguir com base nos seus requisitos.

  • Resolva o problema modifique manualmente o valor da variável $releasever.

  • Instale o plug-in yum-plugin-releasever-adapter.

Nota

Os exemplos a seguir usam o repositório docker-ce. As soluções são semelhantes para outros repositórios YUM.

Solução 1: Modifique manualmente a variável

  1. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Execute o comando a seguir para edite o arquivo de configuração /etc/yum.repos.d/docker-ce.repo:

    vim /etc/yum.repos.d/docker-ce.repo
    1. Pressione a tecla i para entrar no modo de edição. No arquivo docker-ce.repo, localize todas as source onde enabled=1 e altere a variável $releasever no endereço baseurl para 7. O conteúdo modificado fica assim. Dingtalk_20210610100121.jpg

    2. Após concluir a modificação, pressione a tecla Esc, insira :wq e pressione a tecla Enter para salve e fechar o arquivo de configuração. Você pode então reinstalar o pacote.

Solução 2: Instale um plug-in

Instale o plug-in yum-plugin-releasever-adapter para converter automaticamente o valor $releasever de 2.1903 para 7.

  1. Verifique se sua instância suporta o plug-in yum-plugin-releasever-adapter.

    A versão do plug-in e os repositórios de terceiros que ele suporta por padrão estão listados na tabela a seguir.

    Versão do plug-in

    Repositórios suportados

    Limitações do plug-in

    1,0-1,3

    docker-ce.repo, epel.repo

    Use este plug-in apenas se as seguintes condições forem atendidas:

    • O sistema operacional é Alibaba Cloud Linux 2.

    • Execute o comando a seguir para confirme que o repo plus existe no sistema:

      cat /etc/yum.repos.d/AliYun.repo |grep -A3 plus

      Uma saída semelhante à seguinte indica que o repo plus existe. Dingtalk_20210622170320.jpg

  2. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  3. Execute o comando a seguir para instale o plug-in yum-plugin-releasever-adapter, que por padrão converte automaticamente o valor $releasever nos repositórios YUM de terceiros docker-ce e epel.

    yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
  4. Se não for necessário converter outros repositórios YUM, você pode instale o software agora. Caso contrário, siga estas etapas para configure repositórios adicionais:

    1. Execute o comando a seguir para acesse o diretório especificado:

      cd /etc/yum/pluginconf.d/
    2. Execute o comando a seguir para edite o arquivo de configuração releasever-adapter.conf. Se precisar adicionar outros repositórios YUM, anexe seus nomes de arquivo .repo ao campo includes, separados por vírgulas.

      vim releasever-adapter.conf

      O sistema exibe uma saída semelhante à seguinte:

      [main]
      
      enabled=1
      
      hostfilepath=timedhosts.txt
      
      [releasevermapping]
      
      release_dict={'2.1903':'7', '3':'8'}
      
      [reposlist]
      
      includes=docker-ce.repo, epel.repo
      Nota
      • A seguir estão descritos os parâmetros do arquivo:

        • [main]: Esta é a seção de controle principal do plug-in. Ela controla se o plug-in está ativado. Se enabled=1, o plug-in está ativado. Se enabled=0, o plug-in está desativado.

        • [releasevermapping]: O mapeamento para a variável $releasever, onde 2.1903 é mapeado para 7 e 3 é mapeado para 8.

        • [repolist]: A lista de source a serem modifique. Para adicionar outras source, adicione os nomes de seus arquivos .repo após o campo include e separe-os com vírgulas.

      • Um arquivo .repo pode conter vários repositórios. Cada repositório é identificado por um nome, que deve ser único no sistema. Por exemplo, o arquivo docker-ce.repo contém repositórios como [docker-ce-stable] e [docker-ce-stable-debuginfo].

      • Certifique-se de que o nome de um arquivo de origem adicionado ao arquivo de configuração releasever-adapter.conf seja um prefixo para todos os nomes de repositórios dentro desse arquivo. Por exemplo, os nomes de repositório docker-ce-stable e docker-ce-stable-debuginfo no arquivo de origem docker-ce.repo usam ambos docker-ce como prefixo.

    3. Salve o arquivo de configuração. Execute o comando a seguir para instale o pacote usando os repositórios YUM de terceiros docker-ce e epel:

      yum install docker-ce

Falha em repositório DNF de terceiros

Sintoma

Em uma instância ecs que executa Alibaba Cloud Linux 3 e atende às seguintes condições, o comando dnf install docker-ce falha ao instale o pacote de software de contêiner e o seguinte erro é relatado.

  • É utilizado um repositório DNF de terceiros projetado para o sistema CentOS 8.

  • A imagem é aliyun_3_x64_20G_alibase_20210425.vhd ou versão anterior.

O sistema exibe uma mensagem de erro semelhante à seguinte:

Docker CE Stable - x86_64
Failed to download metadata for repo 'docker-ce-stable'
Error: Failed to download metadata for repo 'docker-ce-stable'

Causa

Os repositórios DNF de terceiros são compatíveis apenas com a distribuição CentOS 8 e, como a variável $releasever do sistema tem um valor diferente no Alibaba Cloud Linux 3, o DNF resolve para um endereço inválido e falha ao baixe pacotes RPM.

Nota

Quando o DNF instala o docker-ce, ele primeiro obtém o número de versão do sistema, que é o valor da variável $releasever. Em seguida, ele substitui a variável $releasever correspondente no baseurl do repositório. Após a substituição, o DNF recupera dados relevantes do novo baseurl. Como o valor da variável $releasever é 8 para o CentOS 8 e 3 para o Alibaba Cloud Linux 3, o baseurl resolvido não é o endereço esperado. Portanto, o DNF não consegue instale pacotes a partir desse endereço incorreto.

Resolução

Escolha uma das soluções a seguir com base nos seus requisitos.

  • Você pode corrigir isso modifique manualmente o valor da variável $releasever.

  • Instale o plug-in dnf-plugin-releasever-adapter.

Nota

Este exemplo usa o repositório docker-ce. As soluções são semelhantes para outros repositórios DNF.

Solução 1: Modifique manualmente a variável

  1. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Execute o comando a seguir para abrir o arquivo de configuração /etc/yum.repos.d/docker-ce.repo:

    vim /etc/yum.repos.d/docker-ce.repo
  3. Pressione a tecla i para entrar no modo de edição, localize todas as source no arquivo docker-ce.repo contendo enabled=1 e substitua a variável $releasever por 8 no baseurl dessas source.

  4. Pressione a tecla Esc, insira :wq e pressione a tecla Enter para salve e fechar o arquivo de configuração. Você pode então reinstalar.

Solução 2: Instale um plug-in

Você pode instale o plug-in dnf-plugin-releasever-adapter para converter automaticamente a variável $releasever de 3 para 8.

  1. Verifique se sua instância suporta o plug-in dnf-plugin-releasever-adapter.

    A versão atual do plug-in dnf-plugin-releasever-adapter e os repositórios de terceiros que ele suporta por padrão estão listados na tabela a seguir.

    Versão do plug-in

    Repositórios suportados

    Limitações do plug-in

    • Nova versão: 1,0-2

    • Versão antiga: 1,0-1,3

    Nota

    As versões nova e antiga do plug-in são incompatíveis. O arquivo de configuração da nova versão chama-se releasever_adapter.conf, e o arquivo da versão antiga chama-se releasever-adapter.conf. Atualize o plug-in exclui o arquivo de configuração original. Portanto, após a atualização, se você precisar suportar source de terceiros além de docker-ce e epel, deverá modifique o campo include no novo arquivo de configuração. Todas as outras configurações permanecem inalteradas.

    docker-ce.repo, epel.repo

    Você pode usar este plug-in apenas se as seguintes condições forem atendidas:

    • O sistema operacional é Alibaba Cloud Linux 3.

    • Execute o comando a seguir para confirme que o repo alinux3-plus existe no sistema:

      cat /etc/yum.repos.d/AliYun.repo |grep -A3 alinux3-plus

      Uma saída semelhante à seguinte indica que o repo alinux3-plus existe.

  2. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  3. Execute o comando a seguir para instale o plug-in dnf-plugin-releasever-adapter:

    Nota

    Atualmente, o plug-in converte automaticamente por padrão a variável $releasever nas source docker-ce e epel.

    dnf install dnf-plugin-releasever-adapter --repo alinux3-plus
  4. Se nenhum outro repositório DNF precisar de conversão, você pode instale o software diretamente após a instalação do plug-in. Se outros repositórios DNF exigirem conversão, configure-os seguindo estas etapas:

    1. Execute o comando a seguir para entrar no diretório /etc/yum/pluginconf.d/.

      cd /etc/yum/pluginconf.d/
    2. Execute o comando a seguir para edite o arquivo de configuração releasever_adapter.conf.

      vim releasever_adapter.conf
      1. Pressione a tecla i para alternar para o modo de edição. Se precisar adicionar outros repositórios DNF, adicione os nomes de arquivo .repo após o campo include e separe-os com vírgulas.

        Nota

        O arquivo .repo de um repositório DNF geralmente é encontrado no diretório /etc/yum.repos.d/.

        O sistema exibe uma saída semelhante à seguinte:

        [main]
        enabled=1
        
        [releasevermapping]
        2.1903 = 7
        3      = 8
        
        [reposlist]
        include=docker-ce.repo, epel.repo
        Nota
        • A seguir estão descritos os parâmetros do arquivo:

          • [main]: Esta é a seção de controle principal do plug-in. Ela controla se o plug-in está ativado. Se enabled=1, o plug-in está ativado. Se enabled=0, o plug-in está desativado.

          • [releasevermapping]: Esta seção especifica o mapeamento para $releasever, onde 2.1903 é mapeado para 7 e 3 é mapeado para 8.

          • [repolist]: Esta seção é uma lista de source a serem modifique. Se precisar adicionar outras source, adicione os nomes dos arquivos .repo após o campo include e separe-os com vírgulas.

        • Em geral, um arquivo .repo define vários repositórios. Cada repositório tem um nome que deve ser único no sistema. Por exemplo, o arquivo docker-ce.repo contém repositórios como [docker-ce-stable] e [docker-ce-stable-debuginfo].

    3. Após terminar a edição, pressione a tecla Esc, insira :wq e pressione Enter para salve e fechar o arquivo de configuração.

    4. Execute o comando a seguir para instale o software docker-ce usando os repositórios docker-ce, epel e seus repositórios recém-adicionados:

      dnf install docker-ce

Erro "bad interpreter" do Yum

Sintoma

Ao execute o comando yum em uma instância ecs com CentOS 7, a seguinte mensagem de erro é relatada.

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

Causa

O comando yum pode falhar devido a problemas com a instalação do Python, como o Python ter sido desinstalado, renomeado ou movido para um caminho diferente.

Nota

O yum (Yellow dog Updater, Modified) é um gerenciador de pacotes front-end shell para Fedora, Red Hat e SUSE.

Resolução

Siga estas etapas para diagnosticar e corrigir o problema do Python.

  1. Conecte-se à instância Linux.

    Para mais informações, consulte Connect to a Linux instance by using a password or key.

  2. Execute o comando a seguir para verificar o caminho do yum:

    which yum

    A saída a seguir indica que o caminho do yum é /usr/bin/yum.

    /usr/bin/yum
  3. Execute o comando a seguir para visualize o conteúdo do arquivo yum:

    cat /usr/bin/yum

    A saída a seguir indica o caminho da versão do Python em uso.

    #!/usr/bin/python
    Nota

    Este tópico usa o caminho /usr/bin/python como exemplo. Use o caminho real com base no seu ambiente.

  4. Execute o comando a seguir para verificar o caminho que você visualize:

    ls -al /usr/bin/python

    Se for exibida uma saída semelhante à seguinte, o Python pode ter sido desinstalado, renomeado ou movido.

    ls: cannot access /usr/bin/python: No such file or directory
  5. Execute o comando a seguir para verificar se existem arquivos relacionados ao Python:

    rpm -qa | grep python

    Em circunstâncias normais, uma saída semelhante à seguinte é retornada.

    python-decorator-3.4.0-3.el7.noarch
    libselinux-python-2.5-14.1.el7.x86_64
    python-backports-1.0-8.el7.x86_64
    python-pyudev-0.15-9.el7.noarch
    rpm-python-4.11.3-35.el7.x86_64
    python-2.7.5-76.el7.x86_64
    .....
    • Se existirem arquivos relacionados ao Python, eles podem ter sido renomeados ou movidos.

      1. Execute o comando a seguir para visualize os arquivos relacionados ao Python:

        ls -al /usr/bin/python*

        Uma saída semelhante à seguinte, que inclui "/usr/bin/python.bak -> python2", indica que o executável do Python foi renomeado.

        lrwxrwxrwx  1 root root   14 Feb 15  2019 /usr/bin/python-config -> python2-config
        lrwxrwxrwx. 1 root root    7 Feb 15  2019 /usr/bin/python.bak -> python2
        lrwxrwxrwx. 1 root root    9 Feb 15  2019 /usr/bin/python2 -> python2.7
        lrwxrwxrwx  1 root root   16 Feb 15  2019 /usr/bin/python2-config -> python2.7-config
        -rwxr-xr-x. 1 root root 7216 Oct 31  2018 /usr/bin/python2.7
        -rwxr-xr-x  1 root root 1835 Oct 31  2018 /usr/bin/python2.7-config
      2. Execute o comando a seguir para alterar o nome de /usr/bin/python.bak de volta para /usr/bin/python:

        mv python.bak python
      3. Execute o comando yum novamente. Se a mensagem de erro não aparecer mais, o problema estará resolvido.

    • Se nenhum pacote relacionado ao Python estiver listado, o Python pode ter sido desinstalado.

      1. Não é possível usar um comando yum quebrado para corrigir a si mesmo. Baixe manualmente o pacote RPM do Python necessário de um espelho vault do CentOS usando uma ferramenta como curl e instale o pacote usando o comando rpm:

        rpm -ivh --replacepkgs python-2.7.5-*.rpm
      2. Execute novamente o comando yum. Se a mensagem de erro anterior não aparecer mais, o problema estará corrigido.