# 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

関連記事

Ubuntu で Web サーバーを構築する手順
メールサーバー移行と POP & IMAP 設定
Docker Supervisor 使ってバッチ処理
よく使う WSL コマンド
自宅サーバー構築!  Nextcloud で NAS クラウドストレージ
no such file or directory: /usr/share/zsh/vendor-completions/_docker
oh my zsh 使うべし
AWS Lambda Nodejs で chatwork へ post 送信
AWS CloudWatch ログ監視で Lambda 処理
AWS SES メール開封確認  DB に集計
Vim 操作とショートカット
DDNS 無料ダイナミック DNS サービス 4 つ
Nginx 基本設定
SPF メール送信なりすまし対策
Windows Mac Linux hosts ファイル場所
AWS Unresolved resource dependencies [AWSEBV2LoadBalancer] エラー
ディスク容量を確認する df コマンド
Laravel Address already in use の原因
content-security-policy 設定
AWS Elastic Beanstalk php.ini 設定変更
AWS Elastic Beanstalk 環境設定
AWS のタイムゾーンを UTC 協定世界時から JST 日本標準時に変更
Docker の基本的な使い方
Amazon DynamoDB 制限調査
AWS 504 Gateway Timeout エラー対応
Shell と Bash のいろいろ
Mac ターミナル SSH 接続設定
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
crontab 設定いろいろ
デプロイツール Capistrano
解決! xserver php バージョンアップした時に ssh 環境に反映されない
youtube 見れるように vpn サーバー建ててみた
xserver に vim インストール
xserver に nodejs インストール
レンタルサーバーなら xserver おすすめ理由
Docker command でドッカー練習する時のメモ
Windows10 Home に Docker 入れた時のメモ
Centos7 Webserver 構築の時のメモ