# AWS EC2 の 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 には適用されません

# Extras Library インストール

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

which amazon-linux-extras

/usr/bin/amazon-linux-extras

デフォルトで入っているはずですが、なければインストール

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 )php
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にあります。

# 参考

Extras library (Amazon Linux 2) (opens new window)
Amazon Linux 2 の Extras Library(amazon-linux-extras)を使ってみた (opens new window)

2020-10-29
  • server
  • aws
レンタルサーバー エックスサーバー レンタルサーバー エックスサーバー DMM fx DMM fx 開発/運用エンジニア募集プログラム 開発/運用エンジニア募集プログラム 外為ジャパンFX 新規口座開設促進 外為ジャパンFX 新規口座開設促進 eBay公式ショッピングサイト Qoo10 eBay公式ショッピングサイト Qoo10 Amazon.co.jpのカテゴリごとのページ

関連記事

AWS 504 Gateway Timeout エラー対応
Laravel Address already in use の原因
Amazon DynamoDB 制限調査
デプロイツール Capistrano
AWS Elastic Beanstalk php.ini 設定変更
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
AWS のタイムゾーンを UTC 協定世界時から JST 日本標準時に変更
AWS Elastic Beanstalk 環境設定
Shell と Bash のいろいろ
crontab 設定いろいろ
Mac ターミナル SSH 接続設定
解決! xserver php バージョンアップした時に ssh 環境に反映されない
xserver に nodejs インストール
Centos7 Webserver 構築の時のメモ
content-security-policy 設定
xserver に vim インストール
レンタルサーバーなら xserver おすすめ理由
youtube 見れるように vpn サーバー建ててみた