# 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 でパッケージを最新バージョンにアップグレードする際に便利なツール。
# 主な使い方
- list: 利用可能なトピックを確認
- info: パッケージの詳細を確認
- install: トピックを有効化&インストール
- enable: トピックを有効化(レポジトリに追加)
- disable: トピックを無効化
# よくある使用例
- PHP のバージョンアップ(例:PHP 7.4 → PHP 8.0)
- Python のバージョンアップ
- MariaDB の最新版インストール
- その他の開発ツールのインストール
参考リンク: