すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linux インスタンス用の Alibaba Cloud ソフトウェアリポジトリの追加または修正

最終更新日:Aug 26, 2026

Linux において、ソフトウェアリポジトリは通常、ソフトウェアパッケージを格納する場所です。ソフトウェアリポジトリを追加すると、パッケージ管理ツールを使用して、リポジトリ内のパッケージを検索、インストール、または更新できます。このプロセスは、システムの運用保守を簡素化し、アプリケーション開発をサポートします。本トピックでは、Alibaba Cloud のリポジトリを例に、さまざまな Linux ディストリビューションでソフトウェアリポジトリを管理・使用する方法を説明します。

背景

ソフトウェアリポジトリのアクセス速度は、地理的リージョンや距離などの要因によって異なります。Alibaba Cloud オープンソースミラーサイトは、Alibaba Cloud のインフラストラクチャを活用し、無料の高速オールインワンミラーサービスを提供します。このサービスには、CentOS、Debian、Ubuntu、Fedora、openSUSE など、主要な Linux ディストリビューション向けのソフトウェアリポジトリミラーが含まれます。このリポジトリは、Alibaba Cloud のユーザーとそうでないユーザーのどちらも無料で利用できます。

重要
  • デフォルトでは、Alibaba Cloud のパブリックイメージに含まれるソフトウェアリポジトリは、Alibaba Cloud ミラーサイトの ECS 向けプライベートリポジトリアドレスを使用します。ECS ユーザーは、手動で設定することなくこれらのリポジトリを直接使用できます。Linux ディストリビューション向けのソフトウェアリポジトリを手動で追加または修正する必要がある場合は、このトピックをご参照ください。

  • このトピックでは、インターネットに接続されている Linux システム向けのパブリックリポジトリアドレス http://mirrors.aliyun.com を使用します。サーバーが Alibaba Cloud の ECS インスタンスの場合は、ダウンロードを高速化するために、ECS 向けプライベートリポジトリアドレス http://mirrors.cloud.aliyuncs.com を使用してください。

Alibaba Cloud ソフトウェアリポジトリの追加

  1. Linux インスタンスへの接続

    詳細については、「ワークベンチを使用した Linux インスタンスへのログイン」をご参照ください。このトピックのログイン例では ecs-user を使用しています。他のログイン方法も使用できます。

  2. Alibaba Cloud ソフトウェアリポジトリの追加

    説明

    以下のセクションでは、一般的な Linux ディストリビューションに Alibaba Cloud ソフトウェアリポジトリを追加する方法について説明します。お使いのオペレーティングシステムのバージョンに応じた手順に従ってください。

    Alibaba Cloud Linux 3 / 2

    1. 次のコマンドを実行して、元のソフトウェアリポジトリをバックアップします。

      sudo mv /etc/yum.repos.d/AliYun.repo /etc/yum.repos.d/AliYun.repo.backup
    2. 次のコマンドを実行して、新しいソフトウェアリポジトリを追加します。

      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. 次のコマンドを実行して、ソフトウェアパッケージの検索とインストールを高速化するためのローカルキャッシュを生成します。

      sudo yum clean all && sudo yum makecache

    CentOS 8 / 7 / 6

    1. 次のコマンドを実行して、元のソフトウェアリポジトリをバックアップします。

      sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    2. 次のコマンドを実行して、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 -sS -o /etc/yum.repos.d/Centos-7.repo $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. 次のコマンドを実行して、ソフトウェアパッケージの検索とインストールを高速化するためのローカルキャッシュを生成します。

      sudo yum clean all && sudo yum makecache

    Ubuntu

    1. 次のコマンドを実行して、元のソフトウェアリポジトリをバックアップします。

      sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
    2. 次のコマンドを実行して、設定ファイルを作成して開きます。

      sudo vim /etc/apt/sources.list
    3. i を押して挿入モードに入り、お使いの Ubuntu バージョンのリポジトリ設定をファイルに追加します。

      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. Esc キーを押し、:wq と入力してから Enter キーを押して、設定ファイルを保存して閉じます。

    5. 次のコマンドを実行して、ローカルパッケージインデックスを更新します。

      sudo apt update

    Debian

    1. 次のコマンドを実行して、元のソフトウェアリポジトリをバックアップします。

      sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
    2. 次のコマンドを実行して、設定ファイルを作成して開きます。

      sudo vim /etc/apt/sources.list
    3. i を押して挿入モードに入り、ファイルにご使用の Debian バージョンのリポジトリ設定を追加します。

      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. Esc を押し、:wq と入力し、Enter を押して、設定ファイルを保存して閉じます。

    5. 次のコマンドを実行して、ローカルパッケージインデックスを更新します。

      sudo apt update

    Fedora

    1. 次のコマンドを実行して、元のソフトウェアリポジトリをバックアップします。

      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. 次のコマンドを実行して、Alibaba Cloud Fedora ソフトウェアリポジトリを追加します。

      url=http://mirrors.aliyun.com/repo/fedora.repo;if [ -f /usr/bin/curl ];then sudo curl -sS -o /etc/yum.repos.d/fedora.repo $url;else sudo wget -O /etc/yum.repos.d/fedora.repo $url; fi
    3. 次のコマンドを実行して、Alibaba Cloud fedora-updates ソフトウェアリポジトリを追加します。

      url=http://mirrors.aliyun.com/repo/fedora-updates.repo;if [ -f /usr/bin/curl ];then sudo curl -sS -o /etc/yum.repos.d/fedora-updates.repo $url;else sudo wget -O /etc/yum.repos.d/fedora-updates.repo $url; fi
    4. 次のコマンドを実行して、ソフトウェアパッケージの検索とインストールを高速化するためのローカルキャッシュを生成します。

      sudo yum clean all && sudo yum makecache

    openSUSE 15.6

    1. 次のコマンドを実行して、元のソフトウェアリポジトリをバックアップします。

      sudo rename '.repo' '.repo.backup' /etc/zypp/repos.d/openSUSE*.repo
    2. 次のコマンドを実行して、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. 次のコマンドを実行して、リポジトリを更新します。

      sudo zypper ref

パッケージマネージャーによるソフトウェアの管理

Linux では、パッケージ管理ツールを使用して、ソフトウェアリポジトリで利用可能なソフトウェアパッケージを管理できます。一般的なパッケージ管理ツールには、yum、dnf、apt、zypper などがあります。このトピックでは、さまざまなオペレーティングシステムでこれらのツールを使用してソフトウェアを検索、インストール、アップデート、削除する方法を説明します。例では、サンプルパッケージ名を必要なパッケージ名に置き換えてください。

説明

Linux ディストリビューションのソフトウェアパッケージは、新機能の追加、バグの修正、セキュリティアップデートの提供のために継続的にアップデートされます。必要に応じて、パッケージを最新バージョンにアップデートしてください。

Alibaba Cloud Linux / CentOS / Fedora

  • ソフトウェアパッケージの検索

    yum パッケージ管理ツールでソフトウェアパッケージを検索するには、次のコマンドを実行します。

    sudo yum search <package-keyword>

    たとえば、nginx キーワードを含むパッケージを検索するには、次のコマンドを実行します。

    sudo yum search nginx
  • ソフトウェアパッケージのインストール

    yum パッケージ管理ツールを使用してソフトウェアパッケージをインストールするには、次のコマンドを実行します。

    sudo yum install <package-name>

    たとえば、nginx パッケージをインストールするには、次のコマンドを実行します。

    sudo yum install nginx
  • ソフトウェアパッケージの再インストール

    次のコマンドを実行して、yum パッケージ管理ツールでインストール済みのソフトウェアパッケージを再インストールします。

    sudo yum reinstall <package-name>

    たとえば、nginx パッケージを再インストールするには、次のコマンドを実行します。

    sudo yum reinstall nginx
  • ソフトウェアパッケージのアップデート

    yum パッケージ管理ツールを使用してソフトウェアパッケージを更新するには、次のコマンドを実行します。

    sudo yum update <package-name>

    たとえば、nginx パッケージをアップデートするには、次のコマンドを実行します。

    sudo yum update nginx
  • ソフトウェアパッケージの削除

    次のコマンドを実行して、yum パッケージ管理ツールでソフトウェアパッケージを削除します。

    sudo yum remove <package-name>

    たとえば、nginx パッケージを削除するには、次のコマンドを実行します。

    sudo yum remove nginx

Ubuntu / Debian

  • ソフトウェアパッケージの検索

    apt を使用してソフトウェアパッケージを検索するには、次のコマンドを実行します。

    sudo apt search <package-keyword>

    たとえば、nginx キーワードを含むパッケージを検索するには、次のコマンドを実行します。

    sudo apt search nginx
  • ソフトウェアパッケージのインストール

    次のコマンドを実行して、apt パッケージ管理ツールでソフトウェアパッケージをインストールします。

    sudo apt install <package-name>

    たとえば、nginx パッケージをインストールするには、次のコマンドを実行します。

    sudo apt install nginx
  • ソフトウェアパッケージの再インストール

    次のコマンドを実行して、apt パッケージ管理ツールでインストール済みのソフトウェアパッケージを再インストールします。

    sudo apt install --reinstall <package-name>

    たとえば、nginx パッケージを再インストールするには、次のコマンドを実行します。

    sudo apt install --reinstall nginx
  • ソフトウェアパッケージのアップデート

    apt を使用してソフトウェアパッケージをアップデートするには、次のコマンドを実行します。

    sudo apt upgrade <package-name>

    たとえば、nginx パッケージをアップデートするには、次のコマンドを実行します。

    sudo apt upgrade nginx
  • ソフトウェアパッケージの削除

    apt を使用してソフトウェアパッケージを削除するには、次のコマンドを実行します。

    sudo apt remove <package-name>

    たとえば、nginx パッケージを削除するには、次のコマンドを実行します。

    sudo apt remove nginx

openSUSE

  • ソフトウェアパッケージの検索

    zypper を使用してソフトウェアパッケージを検索するには、次のコマンドを実行します。

    sudo zypper search <package-keyword>

    たとえば、nginx キーワードを含むパッケージを検索するには、次のコマンドを実行します。

    sudo zypper search nginx
  • ソフトウェアパッケージのインストール

    zypper を使用してソフトウェアパッケージをインストールするには、次のコマンドを実行します。

    sudo zypper install <package-name>

    たとえば、nginx パッケージをインストールするには、次のコマンドを実行します。

    sudo zypper install nginx
  • ソフトウェアパッケージの再インストール

    zypper パッケージ管理ツールを使用してインストール済みのソフトウェアパッケージを再インストールするには、次のコマンドを実行します。

    sudo zypper install --force <package-name>

    たとえば、nginx パッケージを再インストールするには、次のコマンドを実行します。

    sudo zypper install --force nginx
  • ソフトウェアパッケージのアップデート

    zypper パッケージ管理ツールを使用してソフトウェアパッケージを更新するには、次のコマンドを実行します。

    sudo zypper update <package-name>

    たとえば、nginx パッケージをアップデートするには、次のコマンドを実行します。

    sudo zypper update nginx
  • ソフトウェアパッケージの削除

    次のコマンドを実行して、zypper パッケージ管理ツールでソフトウェアパッケージを削除します。

    sudo zypper remove <パッケージ名>

    たとえば、nginx パッケージを削除するには、次のコマンドを実行します。

    sudo zypper remove nginx

よくある質問

"Failed to fetch" error

症状

Ubuntu 14.04 を実行している Elastic Compute Service (ECS) インスタンスで、次のコマンドを実行して openjdk-7-jre-headless ソフトウェアパッケージをインストールすると、「[Failed to fetch]」エラーが発生します。

apt-get install openjdk-7-jre-headless

システムには次のような出力が表示されます。

原因

ECS インスタンスが外部のソフトウェアリポジトリに接続されているため、[OpenJDK] をインストールできません。

解決策

  1. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して OpenJDK を再インストールします。

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

"File contains no section headers" error

症状

CentOS 7.0 を実行している ECS インスタンスで yum コマンドを使用して MySQL をインストールすると、次のエラーが発生します。

File contains no section headers.

原因

ソフトウェアリポジトリに必要なソフトウェアパッケージが含まれていません。

解決策

次の手順に従って、公式の CentOS ソフトウェアリポジトリに切り替えます。

  1. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. /etc/yum.repos.d/epel.repo 設定ファイルを変更します。

    1. 次のコマンドを実行して、/etc/yum.repos.d/epel.repo 設定ファイルを編集します。

      vim /etc/yum.repos.d/epel.repo
    2. i キーを押して挿入モードに切り替え、設定ファイルの内容を次の内容に置き換えます。

      [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. 編集後、Esc キーを押して挿入モードを終了します。次に :wq と入力し、Enter キーを押してファイルを保存して終了します。

  3. 次のコマンドを順番に実行して、新しいソフトウェアリポジトリ設定を適用します。

    yum makecache
    yum repolist
  4. MySQL を再インストールします。エラーメッセージが表示されなくなった場合、問題は解決しています。

"Error processing package install-info"

症状

Ubuntu を実行している ECS インスタンスで apt-get を使用してソフトウェアをインストールすると、「[error processing package install-info (--configure)]」エラーが発生します。

原因

この問題は、Ubuntu のソフトウェアパッケージが破損し、インストールに失敗した場合に発生することがあります。

解決策

次の手順に従って APT ソフトウェアリポジトリをアップデートし、ソフトウェアを再インストールします。

  1. Ubuntu インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. info ディレクトリの名前を変更します。

    mv /var/lib/dpkg/info/ /var/lib/dpkg/info.bak.old/
  3. 新しい info ディレクトリを作成します。

    mkdir /var/lib/dpkg/info/
  4. 次のコマンドを実行して APT ソフトウェアリポジトリをアップデートします。

    apt-get update
  5. 次のコマンドを実行してソフトウェアを再インストールします。xxxxx を、再インストールするソフトウェアパッケージ名に置き換えます。エラーメッセージが表示されなくなった場合、問題は解決しています。

    apt-get install  xxxxx

"Segmentation fault" error

症状

Ubuntu を実行している ECS インスタンスで apt-get を使用してソフトウェアをインストールまたはアップデートすると、「[セグメンテーション違反]」エラーが発生します。

原因

この問題は、APT キャッシュが競合し、インストールまたはアップデートに失敗した場合に発生することがあります。

解決策

次の手順に従って APT ソフトウェアリポジトリをアップデートします。

  1. Ubuntu インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. /var/cache/apt/ ディレクトリをバックアップします。

  3. バックアップ後、次のコマンドを実行して、/var/cache/apt/ ディレクトリからすべての .bin ファイルを削除します。

    rm /var/cache/apt/*.bin
  4. 次のコマンドを実行して APT ソフトウェアリポジトリをアップデートします。

    apt-get update
  5. apt-get をエラーなしで実行できるか確認します。

    説明

    512 MB などのメモリが少ないインスタンスで「[セグメンテーション違反]」エラーが発生する場合は、top コマンドを実行してメモリ使用量を確認してください。不要なプロセスを停止してから、apt-get コマンドを再試行してください。

"Reading package lists" error

症状

Ubuntu を実行している ECS インスタンスで apt-get を使用してソフトウェアをインストールすると、次のようなエラーメッセージが表示されます。

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.

原因

パッケージリストが破損しているため、ソフトウェアのインストールに失敗します。

解決策

次の手順に従って、破損したリストを削除し、アップデートリストを再生成します。

  1. 次のコマンドを実行して、ディレクトリから破損したリストを削除します。

    rm -rf /var/lib/apt/lists/*
  2. 次のコマンドを実行して、アップデートリストを再生成します。

    apt-get update

    image

  3. ソフトウェアを再インストールします。エラーメッセージが表示されなくなった場合、問題は解決しています。

apt-get "404 Not Found" error

症状

Ubuntu を実行している ECS インスタンスで apt-get install unzip または aptitude install unzip コマンドを実行すると、次のエラーメッセージが表示されます。

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]

原因

このエラーは通常、オペレーティングシステムが想定するソフトウェアパッケージのバージョンと、APT ソフトウェアリポジトリで提供されているバージョンに不整合がある場合に発生します。その結果、apt-get が存在しないリソースを要求します。

解決策

次の手順に従って APT ソフトウェアリポジトリをアップデートします。

  1. Ubuntu インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して APT ソフトウェアリポジトリをアップデートします。

    apt-get update
  3. ソフトウェアリポジトリのアップデート後、apt-get install コマンドを使用して必要なソフトウェアをインストールします。

KEYEXPIRED error

症状

Ubuntu を実行している ECS インスタンスで apt-get update コマンドを実行すると、次のメッセージが表示されます。

The following signatures were invalid: KEYEXPIRED 1544811256

原因

ソフトウェアリポジトリの署名が期限切れのため、アップデートに失敗します。

解決策

次の手順に従って、期限切れのキーを更新します。

  1. Ubuntu インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して、期限切れのキーを取得します。

    sudo apt-key list | grep -A 1 expired

  3. 次のコマンドを実行して、期限切れのキーを更新します。

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

    [$Key] を、前の手順で取得した期限切れのキーに置き換えます。

  4. 次のコマンドを再度実行して、APT ソフトウェアリポジトリをアップデートします。

    apt-get update

サードパーティー YUM リポジトリの障害

症状

Alibaba Cloud Linux 2 を実行している ECS インスタンスで、次の条件を満たし、かつ CentOS 7 向けのサードパーティー docker-ce および epel YUM リポジトリを使用して yum install docker-ce コマンドを実行すると、Docker ソフトウェアパッケージのインストールに失敗し、次のエラーが報告されます。

  • イメージ: Alibaba Cloud Linux 2.1903 LTS 64-bit。

  • イメージ ID: aliyun_2_1903_x64_20G_alibase_20210325.vhd またはそれ以前のバージョン。

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.

原因

サードパーティー YUM リポジトリは CentOS 7 ディストリビューション専用に設計されています。Alibaba Cloud Linux 2 のオペレーティングシステムの $releasever の値は、CentOS 7 のオペレーティングシステムの値とは異なります。この不一致により、YUM が解決するアドレスが無効になり、ソフトウェアパッケージをダウンロードできません。

説明

YUM を使用して docker-ce ソフトウェアパッケージをインストールする場合、YUM は最初にシステムのバージョン番号である $releasever の値を取得します。次に、対応する YUM リポジトリの baseurl アドレスに含まれる $releasever 変数をこの値に置き換えます。その後、置き換え後のアドレスからデータを取得します。CentOS 7 のオペレーティングシステムの $releasever の値は 7 で、$releasever の値を使用する Alibaba Cloud Linux 2 のオペレーティングシステムの値は 2.1903 であるため、解決後の baseurl アドレスは想定されるアドレスになりません。その結果、YUM はこの誤ったアドレスからデータを取得できません。

解決策

要件に応じて、次のいずれかの解決策を選択します。

  • $releasever 変数の値を手動で変更して問題を解決します。

  • yum-plugin-releasever-adapter プラグインをインストールします。

説明

次の例では docker-ce リポジトリを使用します。ほかの YUM リポジトリでも解決策は同様です。

解決策 1:変数の手動変更

  1. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して、/etc/yum.repos.d/docker-ce.repo 設定ファイルを編集します。

    vim /etc/yum.repos.d/docker-ce.repo
    1. i キーを押して編集モードに入ります。docker-ce.repo ファイルで、[enabled=1] となっているすべてのソースを検索し、baseurl アドレス内の $releasever 変数を 7 に変更します。変更後の内容は次のとおりです。Dingtalk_20210610100121.jpg

    2. 変更が完了したら、Esc キーを押し、:wq と入力してから Enter キーを押して、設定ファイルを保存して終了します。その後、ソフトウェアパッケージを再インストールできます。

解決策 2:プラグインのインストール

yum-plugin-releasever-adapter プラグインをインストールすると、$releasever の値を 2.1903 から 7 に自動変換できます。

  1. インスタンスが yum-plugin-releasever-adapter プラグインをサポートしているかどうかを確認します。

    プラグインのバージョンと、デフォルトでサポートされるサードパーティーリポジトリを次の表に示します。

    プラグインのバージョン

    サポートされるリポジトリ

    プラグインの制限事項

    1.0-1.3

    docker-ce.repo, epel.repo

    次の条件を満たす場合にのみ、このプラグインを使用してください。

    • オペレーティングシステムが Alibaba Cloud Linux 2 であること。

    • 次のコマンドを実行して、システムに plus リポジトリが存在することを確認します。

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

      次のような出力が表示された場合、plus リポジトリが存在します。Dingtalk_20210622170320.jpg

  2. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  3. 次のコマンドを実行して yum-plugin-releasever-adapter プラグインをインストールします。このプラグインはデフォルトで、docker-ce と epel のサードパーティー YUM リポジトリに含まれる $releasever の値を自動変換します。

    yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
  4. ほかの YUM リポジトリを変換する必要がない場合は、この時点でソフトウェアをインストールできます。ほかの YUM リポジトリも変換する必要がある場合は、次の手順に従って追加のリポジトリを設定します。

    1. 次のコマンドを実行して、指定のディレクトリに移動します。

      cd /etc/yum/pluginconf.d/
    2. 次のコマンドを実行して releasever-adapter.conf 設定ファイルを編集します。 他の YUM リポジトリを追加する必要がある場合は、その .repo ファイル名をコンマで区切って [includes] フィールドに追記します。

      vim releasever-adapter.conf

      システムに次のような出力が表示されます。

      [main]
      
      enabled=1
      
      hostfilepath=timedhosts.txt
      
      
      [releasevermapping]
      
      release_dict={'2.1903':'7', '3':'8'}
      
      
      [reposlist]
      
      includes=docker-ce.repo, epel.repo
      説明
      • ファイル内のパラメーターの説明は次のとおりです。

        • [main]は、プラグインのメインコントロールセクションで、プラグインの有効/無効を制御します。[enabled=1]の場合、プラグインは有効になり、[enabled=0]の場合、プラグインは無効になります。

        • [releasevermapping]: $releasever 変数のマッピングです。2.1903 は 7 に、3 は 8 にマッピングされます。

        • [repolist]: 変更するソースのリストです。ほかのソースを追加するには、include フィールドの後に .repo ファイル名を追加し、カンマで区切ります。

      • .repo ファイルには複数のリポジトリを含めることができます。各リポジトリは名前で識別され、システム内で一意である必要があります。たとえば、docker-ce.repo ファイルには、[docker-ce-stable] や [docker-ce-stable-debuginfo] などのリポジトリが含まれます。

      • releasever-adapter.conf 設定ファイルに追加するソースファイル名が、そのファイル内のすべてのリポジトリ名のプレフィックスであることを確認してください。たとえば、docker-ce.repo ソースファイル内のリポジトリ名 docker-ce-stable と docker-ce-stable-debuginfo は、どちらも docker-ce をプレフィックスとして使用します。

    3. 設定ファイルを保存します。次のコマンドを実行して、docker-ce および epel のサードパーティー YUM リポジトリを使用してソフトウェアパッケージをインストールします。

      yum install docker-ce

サードパーティー DNF リポジトリの障害

症状

Alibaba Cloud Linux 3 を実行している ECS インスタンスで、次の条件を満たし、dnf install docker-ce コマンドを実行すると、コンテナのソフトウェアパッケージをインストールできず、次のエラーが報告されます。

  • CentOS 8 システム向けに設計されたサードパーティー DNF リポジトリを使用している。

  • イメージが aliyun_3_x64_20G_alibase_20210425.vhd またはそれ以前のバージョンである。

システムには次のようなエラーメッセージが表示されます。

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

原因

サードパーティー DNF リポジトリは CentOS 8 ディストリビューションとのみ互換性があります。また、Alibaba Cloud Linux 3 ではシステムの $releasever 変数の値が異なるため、DNF が解決するアドレスが無効になり、RPM パッケージのダウンロードに失敗します。

説明

DNF を使用して docker-ce をインストールする場合、DNF は最初にシステムからバージョン番号である $releasever 変数の値を取得します。次に、リポジトリの baseurl に含まれる対応する $releasever 変数を置き換えます。置き換え後、DNF は新しい baseurl から関連データを取得します。CentOS 8 の $releasever 変数の値は 8 で、Alibaba Cloud Linux 3 の値は 3 であるため、解決後の baseurl は想定されるアドレスになりません。したがって、DNF はこの誤ったアドレスからソフトウェアパッケージをインストールできません。

解決策

要件に応じて、次のいずれかの解決策を選択します。

  • $releasever 変数の値を手動で変更して修正できます。

  • dnf-plugin-releasever-adapter プラグインをインストールします。

説明

この例では docker-ce リポジトリを使用します。ほかの DNF リポジトリでも解決策は同様です。

解決策 1:変数の手動変更

  1. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して、/etc/yum.repos.d/docker-ce.repo 設定ファイルを開きます。

    vim /etc/yum.repos.d/docker-ce.repo
  3. i キーを押して編集モードに入り、docker-ce.repo ファイルで [enabled=1] を含むすべてのソースを見つけ、それらのソースの baseurl にある $releasever 変数を 8 に置き換えます。

  4. Esc キーを押し、:wq と入力してから、Enter キーを押して、設定ファイルを保存して終了します。その後、再インストールできます。

解決策 2:プラグインのインストール

dnf-plugin-releasever-adapter プラグインをインストールすると、$releasever 変数を 3 から 8 に自動変換できます。

  1. インスタンスが dnf-plugin-releasever-adapter プラグインをサポートしているかどうかを確認します。

    dnf-plugin-releasever-adapter プラグインの現在のバージョンと、デフォルトでサポートされるサードパーティーリポジトリを次の表に示します。

    プラグインのバージョン

    サポートされるリポジトリ

    プラグインの制限事項

    • 新バージョン:1.0-2

    • 旧バージョン:1.0-1.3

    説明

    プラグインの新旧バージョンには互換性がありません。 新しいバージョンの設定ファイル名は releasever_adapter.conf で、古いバージョンのファイル名は releasever-adapter.conf です。 プラグインをアップグレードすると、元の設定ファイルは削除されます。 したがって、アップグレード後、docker-ce および epel 以外のサードパーティのソースをサポートする必要がある場合は、新しい設定ファイルの [include] フィールドを修正する必要があります。 その他すべての設定は変更されません。

    docker-ce.repo, epel.repo

    次の条件を満たす場合にのみ、このプラグインを使用できます。

    • オペレーティングシステムが Alibaba Cloud Linux 3 であること。

    • 次のコマンドを実行して、システムに alinux3-plus リポジトリが存在することを確認します。

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

      次のような出力が表示された場合、alinux3-plus リポジトリが存在します。

  2. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  3. 次のコマンドを実行して、dnf-plugin-releasever-adapter プラグインをインストールします。

    説明

    現在、このプラグインはデフォルトで、docker-ce と epel のソースに含まれる $releasever 変数を自動変換します。

    dnf install dnf-plugin-releasever-adapter --repo alinux3-plus
  4. ほかの DNF リポジトリを変換する必要がない場合は、プラグインのインストール後にそのままソフトウェアをインストールできます。ほかの DNF リポジトリも変換する必要がある場合は、次の手順に従って設定してください。

    1. 次のコマンドを実行して、/etc/yum/pluginconf.d/ ディレクトリに移動します。

      cd /etc/yum/pluginconf.d/
    2. 次のコマンドを実行して、releasever_adapter.conf 設定ファイルを編集します。

      vim releasever_adapter.conf
      1. i キーを押して編集モードに切り替えます。 他の DNF リポジトリを追加する必要がある場合は、[include] フィールドの後に .repo ファイル名を追加し、コンマで区切ります。

        説明

        DNF リポジトリの .repo ファイルは通常、/etc/yum.repos.d/ ディレクトリにあります。

        システムに次のような出力が表示されます。

        [main]
        enabled=1
        
        [releasevermapping]
        2.1903 = 7
        3      = 8
        
        [reposlist]
        include=docker-ce.repo, epel.repo
        説明
        • ファイル内のパラメーターの説明は次のとおりです。

          • [main]: これは、プラグインを有効にするかどうかを制御するメイン制御セクションです。[enabled=1] の場合、プラグインは有効になります。[enabled=0] の場合、プラグインは無効になります。

          • [releasevermapping]: $releasever のマッピングを指定します。2.1903 は 7 に、3 は 8 にマッピングされます。

          • [repolist]: このセクションは、変更するソースのリストです。他のソースを追加する必要がある場合は、[include] フィールドの後に .repo ファイル名を追加し、カンマで区切ります。

        • 通常、.repo ファイルでは複数のリポジトリを定義します。各リポジトリには名前があり、システム内で一意である必要があります。たとえば、docker-ce.repo ファイルには、[docker-ce-stable] や [docker-ce-stable-debuginfo] などのリポジトリが含まれます。

    3. 編集が完了したら、Esc キーを押し、:wq と入力してから Enter を押して、設定ファイルを保存して終了します。

    4. 次のコマンドを実行して、docker-ce、epel、および新たに追加したリポジトリを使用して docker-ce ソフトウェアをインストールします。

      dnf install docker-ce

yum "bad interpreter" error

症状

CentOS 7 を実行している ECS インスタンスで yum コマンドを実行すると、次のエラーメッセージが報告されます。

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

原因

Python がアンインストールされたり、名前が変更されたり、あるいは別のパスに移動されたりするなど、Python のインストールに問題がある場合、yum コマンドが失敗することがあります。

説明

yum (Yellow dog Updater, Modified) は、Fedora、Red Hat、および SUSE 向けのシェルフロントエンドのパッケージマネージャーです。

解決策

次の手順に従って、Python の問題を診断して修正します。

  1. Linux インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して、yum のパスを確認します。

    which yum

    次の出力は、yum のパスが /usr/bin/yum であることを示します。

    /usr/bin/yum
  3. 次のコマンドを実行して、yum ファイルの内容を確認します。

    cat /usr/bin/yum

    次の出力は、使用されている Python のバージョンのパスを示します。

    #!/usr/bin/python
    説明

    ここでは例として /usr/bin/python パスを使用します。実際のパスは、お使いの環境に合わせて使用してください。

  4. 次のコマンドを実行して、確認したパスをチェックします。

    ls -al /usr/bin/python

    次のような出力が表示された場合、Python がアンインストールされた、名前が変更された、または移動された可能性があります。

    ls: cannot access /usr/bin/python: No such file or directory
  5. 次のコマンドを実行して、Python 関連ファイルが存在するかどうかを確認します。

    rpm -qa | grep python

    通常は、次のような出力が返されます。

    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
    .....
    • Python 関連ファイルが存在する場合、名前が変更されたか、あるいは移動された可能性があります。

      1. 次のコマンドを実行して、Python 関連ファイルを表示します。

        ls -al /usr/bin/python*

        「/usr/bin/python.bak -> python2」を含む次のような出力は、Python の実行可能ファイルの名前が変更されたことを示します。

        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. 次のコマンドを実行して、/usr/bin/python.bak の名前を /usr/bin/python に戻します。

        mv python.bak python
      3. yum コマンドを再度実行します。エラーメッセージが表示されなくなった場合、問題は解決しています。

    • Python 関連パッケージが一覧に表示されない場合、Python がアンインストールされた可能性があります。

      1. 破損した yum コマンドを使用して自己修復することはできません。curl などのツールを使用して、CentOS vault ミラーから必要な Python RPM パッケージを手動でダウンロードし、rpm コマンドでパッケージをインストールします。

        rpm -ivh --replacepkgs python-2.7.5-*.rpm
      2. yum コマンドを再実行します。前述のエラーメッセージが表示されなくなった場合、問題は解決しています。