# Amazon Linux 2 の amazon-linux-extras 完全ガイド

amazon-linux-extrasとは、Amazon Linux 2 インスタンスで PHP、Python、Golang、MariaDB などのパッケージをより新しいバージョンで利用できるように管理するコマンドです。

パッケージを最新にアップグレードする際に便利なコマンドで、例えば PHP のバージョンアップなどで活躍します。

重要

Extras Library からソフトウェアパッケージをインストールするには、まず amazon-linux-extras リポジトリがインスタンスにインストールされていることを確認します。次に、利用可能なソフトウェアパッケージを一覧表示し、探しているものを有効にして、yum を使ってパッケージをインストールします。

注意: この解決方法はAmazon Linux 2 用です。これらの手順は、Amazon Linux 1 2018.03 には適用されません

# amazon-linux-extras のインストール確認

# インストール確認

whichコマンドを使用して、amazon-linux-extras パッケージがインストールされていることを確認します。

which amazon-linux-extras

出力例:

/usr/bin/amazon-linux-extras

# インストール(必要な場合)

デフォルトで Amazon Linux 2 にはインストールされているはずですが、ない場合は以下のコマンドでインストールします。

sudo yum install -y amazon-linux-extras

# amazon-linux-extras の使い方

# 主要コマンド一覧

コマンド 説明
help コマンドリストを表示
info 特定のパッケージの詳細を表示
install 特定のトピックを有効化&インストール
list 有効化できるトピック一覧を表示(省略可能)
enable 特定のトピックを有効化(レポジトリに追加するだけ)
disable 特定のトピックを無効化(パッケージ削除ではない)
remove パッケージの削除(注意が必要)

# list 利用可能なトピックのリストを表示

list は省略可能

amazon-linux-extras list
amazon-linux-extras

# info 特定のパッケージ詳細表示

$ amazon-linux-extras info php7.4
php7.4 recommends php-cli                    # yum install php-cli
php7.4 recommends php-pdo                    # yum install php-pdo
php7.4 recommends php-fpm                    # yum install php-fpm
php7.4 recommends php-json                   # yum install php-json
php7.4 recommends php-mysqlnd                # yum install php-mysqlnd

# install 特定のトピックインストール

バージョンを指定しない場合は、デフォルトのバージョンでインストールされます。

$ sudo amazon-linux-extras install php7.4
Package php-cli-7.4.0-3.amzn2.1.x86_64 already installed and latest version
Package php-fpm-7.4.0-3.amzn2.1.x86_64 already installed and latest version
Package php-json-7.4.0-3.amzn2.1.x86_64 already installed and latest version
Package php-mysqlnd-7.4.0-3.amzn2.1.x86_64 already installed and latest version
Package php-pdo-7.4.0-3.amzn2.1.x86_64 already installed and latest version
  0  ansible2   disabled  [ =2.4.2 ]
  1  emacs   disabled  [ =25.3 ]

$ which php
/usr/bin/php

$ php -v
PHP 7.4.0 (cli) (built: Dec 13 2017 00:38:30) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies

# enable 目的のトピックを有効化

レポジトリに追加して有効化するだけでインストールしない時もあるでしょう。その時はenable使います。

有効化したトピックは/etc/yum.repos.d/amzn2-extras.repoファイルが追加・更新されます。

$ sudo amazon-linux-extras  enable php7.4
  0  ansible2   disabled  [ =2.4.2 ]
  1  emacs   disabled  [ =25.3 ]
Now you can install:
 # yum install php-cli php-pdo php-fpm php-json php-mysqlnd

# disable:トピックの無効化

特定のトピックを無効化する場合に使用します。パッケージは削除されません。

$ sudo amazon-linux-extras disable php7.4
Beware that disabling topics is not supported after they are installed.
  0  ansible2   disabled  [ =2.4.2 ]
  1  emacs   disabled  [ =25.3 ]

$ php -v
PHP 7.4.9 (cli) (built: Aug 21 2020 00:38:30) ( NTS )
Copyright (c) The PHP Group

注意

インストール後にトピックを無効化することは推奨されていません。無効化してもパッケージは削除されません。

# トピックのアンインストール

重要な注意

amazon-linux-extras にはremoveコマンドがありません

自己責任で不要になったパッケージを削除する必要があります。依存関係が分からず、パッケージを削除したらエラーが出る場合があるため、慎重に削除してください。

# パッケージの削除方法

削除する場合はsudo yum removeを使用します。

sudo yum remove $(yum list installed | grep amzn2extra-topic | awk '{ print $1 }')

削除時の注意

  • 依存関係を確認してから削除してください
  • 削除前にバックアップを取ることを推奨します
  • 本番環境での削除は特に注意が必要です

# amazon-linux-extras の内部構造

amazon-linux-extras がどのように動作しているか確認したい場合、ソースコードは以下の場所にあります。

/usr/lib/python2.7/site-packages/amazon_linux_extras/cli.py

# 実装時の注意点

amazon-linux-extras は、Amazon Linux 2 でパッケージを最新バージョンにアップグレードする際に便利なツール。

# 主な使い方

  1. list: 利用可能なトピックを確認
  2. info: パッケージの詳細を確認
  3. install: トピックを有効化&インストール
  4. enable: トピックを有効化(レポジトリに追加)
  5. disable: トピックを無効化

# よくある使用例

  • PHP のバージョンアップ(例:PHP 7.4 → PHP 8.0)
  • Python のバージョンアップ
  • MariaDB の最新版インストール
  • その他の開発ツールのインストール

参考リンク:

2020-10-29

同じタグを持つ記事をピックアップしました。