[小ネタ] Amazon Linux の yum update で複数のパッケージ適用

2019.06.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Guten Tag、ベルリン 伊藤です。

お問い合わせがあり軽く yum update の検証をしましたので、ブログ書きます。

今日のテーマ

Amazon Linux で提供されるパッチについては、こちらのページで公開されており、yum update コマンドで特定のセキュリティパッチを適用させることができます。

すべては下記エントリで詳細に説明されています。

Yumのセキュリティプラグイン

この特定のセキュリティパッチを複数適用させる場合のコマンド確認をしました。すぐ終わります。

今日のまとめ

  • $ yum check-update or $ yum list updates - 利用可能なパッケージ一覧を表示(パッケージと最新バージョン)
  • --security オプション付与により、セキュリティに関するパッケージに限定
  • $ yum updateinfo - 利用可能なセキュリティパッチ情報のまとめを表示(深刻度別の数)
  • $ yum updateinfo list - 利用可能なセキュリティパッチに関するパッケージ一覧(ALAS番号と深刻度とパッケージバージョン)
  • $ yum updateinfo all - 利用可能なセキュリティパッチに関する詳細情報を表示
  • $ yum updateinfo ALAS-yyyy-nnnn ALAS-yyyy-nnnn - 特定のセキュリティパッチに関する詳細情報を表示(※複数の場合はスペース区切りで番号を追記する)
  • $ yum check-update --advisory=ALAS-yyyy-nnnn,ALAS-yyyy-nnnn - ALAS 指定のアップデート対象のパッケージ確認(※複数の場合はカンマ区切りで番号を追記する)
  • $ sudo yum update --advisory=ALAS-yyyy-nnnn,ALAS-yyyy-nnnn - ALAS 指定のアップデート(※複数の場合はカンマ区切りで番号を追記する)

以上です!

確認

EC2 インスタンス起動

最新の Amazon Linux ではパッチが適用されてしまっているため、コミュニティ AMI から少し古めのものを探しました。

ちなみに今回起動したAMIは Amazon Linux (amzn-ami-minimal-hvm-2018.03.0.20181116-x86_64-ebs (ami-07f2bbf97bdf932e6))です 。

yum コマンド確認

yum パッケージがデフォルトでインストールされているため、すぐに実行することができます。(各オプションなどは↑のブログで説明されているのですっ飛ばします)

利用可能なパッチを確認する

セキュリティ関連でアップデート可能なパッケージと、その最新バージョンのみが一覧化されます。

$ yum check-update --security
Loaded plugins: priorities, update-motd, upgrade-helper
15 package(s) needed for security, out of 17 available

curl.x86_64 7.61.1-7.91.amzn1 amzn-updates
file.x86_64 5.34-3.37.amzn1 amzn-updates
file-libs.x86_64 5.34-3.37.amzn1 amzn-updates
fuse-libs.x86_64 2.9.4-1.18.amzn1 amzn-updates
glibc.x86_64 2.17-260.175.amzn1 amzn-updates
glibc-common.x86_64 2.17-260.175.amzn1 amzn-updates
kernel.x86_64 4.14.123-86.109.amzn1 amzn-updates
krb5-libs.x86_64 1.15.1-34.44.amzn1 amzn-updates
libcurl.x86_64 7.61.1-7.91.amzn1 amzn-updates
ntp.x86_64 4.2.8p12-1.41.amzn1 amzn-updates
ntpdate.x86_64 4.2.8p12-1.41.amzn1 amzn-updates
openssl.x86_64 1:1.0.2k-16.150.amzn1 amzn-updates
python27.x86_64 2.7.16-1.125.amzn1 amzn-updates
python27-libs.x86_64 2.7.16-1.125.amzn1 amzn-updates
python27-urllib3.noarch 1.24.1-1.6.amzn1 amzn-updates

セキュリティ関連でアップデート可能なパッチ(ALAS)のサマリが取得できます。

$ yum updateinfo
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00:00
amzn-updates/latest | 2.5 kB 00:00:00
Updates Information Summary: updates
25 Security notice(s)
1 critical Security notice(s)
8 important Security notice(s)
5 low Security notice(s)
11 medium Security notice(s)
updateinfo summary done

すべてのパッケージバージョンとそれぞれの ALAS 番号、深刻度(Severity)が取得できます。

1つの ALAS で複数のパッケージが適用されるケースがあるので、いくつか ALAS 番号が重複して表示されていることが分かります。重複を除くと ALAS 番号の数は 25 で、上の結果と一致します。

$ yum updateinfo list
Loaded plugins: priorities, update-motd, upgrade-helper
ALAS-2018-1112 low/Sec. curl-7.53.1-16.85.amzn1.x86_64
ALAS-2019-1148 low/Sec. curl-7.53.1-16.86.amzn1.x86_64
ALAS-2019-1151 medium/Sec. curl-7.61.1-7.91.amzn1.x86_64
ALAS-2019-1186 medium/Sec. file-5.34-3.37.amzn1.x86_64
ALAS-2019-1186 medium/Sec. file-libs-5.34-3.37.amzn1.x86_64
ALAS-2018-1123 medium/Sec. fuse-libs-2.9.4-1.18.amzn1.x86_64
ALAS-2018-1109 medium/Sec. glibc-2.17-260.175.amzn1.x86_64
ALAS-2018-1109 medium/Sec. glibc-common-2.17-260.175.amzn1.x86_64
ALAS-2018-1133 medium/Sec. kernel-4.14.88-72.73.amzn1.x86_64
ALAS-2019-1145 medium/Sec. kernel-4.14.88-72.76.amzn1.x86_64
ALAS-2019-1149 important/Sec. kernel-4.14.94-73.73.amzn1.x86_64
ALAS-2019-1165 important/Sec. kernel-4.14.101-75.76.amzn1.x86_64
ALAS-2019-1167 important/Sec. kernel-4.14.104-78.84.amzn1.x86_64
ALAS-2019-1179 important/Sec. kernel-4.14.106-79.86.amzn1.x86_64
ALAS-2019-1201 important/Sec. kernel-4.14.114-82.97.amzn1.x86_64
ALAS-2019-1212 important/Sec. kernel-4.14.114-83.126.amzn1.x86_64
ALAS-2019-1205 important/Sec. kernel-4.14.114-83.126.amzn1.x86_64
ALAS-2019-1214 important/Sec. kernel-4.14.121-85.96.amzn1.x86_64
ALAS-2019-1222 critical/Sec. kernel-4.14.123-86.109.amzn1.x86_64
ALAS-2018-1129 low/Sec. krb5-libs-1.15.1-34.44.amzn1.x86_64
ALAS-2018-1112 low/Sec. libcurl-7.53.1-16.85.amzn1.x86_64
ALAS-2019-1148 low/Sec. libcurl-7.53.1-16.86.amzn1.x86_64
ALAS-2019-1151 medium/Sec. libcurl-7.61.1-7.91.amzn1.x86_64
ALAS-2019-1206 medium/Sec. ntp-4.2.8p12-1.41.amzn1.x86_64
ALAS-2019-1206 medium/Sec. ntpdate-4.2.8p12-1.41.amzn1.x86_64
ALAS-2018-1102 medium/Sec. openssl-1:1.0.2k-16.146.amzn1.x86_64
ALAS-2019-1153 low/Sec. openssl-1:1.0.2k-16.148.amzn1.x86_64
ALAS-2019-1188 medium/Sec. openssl-1:1.0.2k-16.150.amzn1.x86_64
ALAS-2018-1108 medium/Sec. python27-2.7.15-1.124.amzn1.x86_64
ALAS-2019-1169 medium/Sec. python27-2.7.16-1.125.amzn1.x86_64
ALAS-2018-1108 medium/Sec. python27-libs-2.7.15-1.124.amzn1.x86_64
ALAS-2019-1169 medium/Sec. python27-libs-2.7.16-1.125.amzn1.x86_64
ALAS-2019-1224 low/Sec. python27-urllib3-1.24.1-1.6.amzn1.noarch
updateinfo list done

アップデート確認

異なるパッケージの ALAS 番号を指定してアップデートを確認してみます。対象のパッケージとバージョンが表示されます。

$ yum check-update --advisory=ALAS-2019-1186,ALAS-2019-1145
Loaded plugins: priorities, update-motd, upgrade-helper
3 package(s) needed for security, out of 13 available

file.x86_64 5.34-3.37.amzn1 amzn-updates
file-libs.x86_64 5.34-3.37.amzn1 amzn-updates
kernel.x86_64

同じパッケージの ALAS 番号を指定してアップデートを確認してみます。3つのうち最新バージョンのみが表示されます。

$ yum check-update --advisory=ALAS-2019-1201,ALAS-2019-1212,ALAS-2019-1205
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00:00
amzn-updates/latest | 2.5 kB 00:00:00
1 package(s) needed for security, out of 13 available

kernel.x86_64 4.14.123-86.109.amzn1 amzn-updates

アップデート

アップデート確認と同様、複数指定した場合でも問題なく最新バージョンが適用されました。

$ sudo yum update --advisory=ALAS-2018-1148,ALAS-2019-1151,ALAS-2018-1112
Loaded plugins: priorities, update-motd, upgrade-helper
2 package(s) needed (+0 related) for security, out of 17 available
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:7.53.1-16.84.amzn1 will be updated
---> Package curl.x86_64 0:7.61.1-7.91.amzn1 will be an update
---> Package libcurl.x86_64 0:7.53.1-16.84.amzn1 will be updated
---> Package libcurl.x86_64 0:7.61.1-7.91.amzn1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================
Updating:
curl x86_64 7.61.1-7.91.amzn1 amzn-updates 362 k
libcurl x86_64 7.61.1-7.91.amzn1 amzn-updates 306 k

Transaction Summary
===============================================================================================================================================================================
Upgrade 2 Packages

Total download size: 668 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): libcurl-7.61.1-7.91.amzn1.x86_64.rpm | 306 kB 00:00:00
(2/2): curl-7.61.1-7.91.amzn1.x86_64.rpm | 362 kB 00:00:00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 2.5 MB/s | 668 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : libcurl-7.61.1-7.91.amzn1.x86_64 1/4
Updating : curl-7.61.1-7.91.amzn1.x86_64 2/4
Cleanup : curl-7.53.1-16.84.amzn1.x86_64 3/4
Cleanup : libcurl-7.53.1-16.84.amzn1.x86_64 4/4
Verifying : libcurl-7.61.1-7.91.amzn1.x86_64 1/4
Verifying : curl-7.61.1-7.91.amzn1.x86_64 2/4
Verifying : libcurl-7.53.1-16.84.amzn1.x86_64 3/4
Verifying : curl-7.53.1-16.84.amzn1.x86_64 4/4

Updated:
curl.x86_64 0:7.61.1-7.91.amzn1 libcurl.x86_64 0:7.61.1-7.91.amzn1

Complete!

余談になりますが、複数の場合のオプション指定は --advisories じゃないといけないかな?と思ったんですが、どっちでも同じ話でした。

CVE 番号を指定する場合も、 --cve--cves どちらでも。

まとめ

小ネタすぎて検索してもなかなか見つからなかった情報を検証し、ご紹介しました。

どなたかの役に立てれば幸いです! Bis bald!