yumの基礎知識
パッケージマネージャーyumのメリット
- リポジトリから自動でインストール対象パッケージをダウンロードしてくれる。
- インストールに必要なパッケージも自動でダウンロードしてくれる。(依存性を解決してくれる)
リポジトリとは?
パッケージの提供元をリポジトリと言う。
パッケージをダウンロードできる場所のことである。
リポジトリがパッケージを一括管理してくれている。
インストール済み・インストール可能なパッケージを表示する yum list
構文
yum list # 全てのパッケージリストを表示
yum list [パッケージ名] # 指定したパッケージの情報を表示
例1 全てのリストを表示
$ yum list
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
インストール済みパッケージ
GeoIP.x86_64 1.5.0-11.amzn2.0.2 installed
...
利用可能なパッケージ
389-ds-base.x86_64 1.3.10.2-12.amzn2.0.1 amzn2-core
...
上記のように、インストール済みパッケージ→利用可能なパッケージの順で表示される。
例2 指定パッケージに関する情報を表示
$ yum list httpd
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
利用可能なパッケージ
httpd.x86_64 2.4.48-2.amzn2 amzn2-core
パッケージをインストールする yum install
構文
yum install [パッケージ名]
例
$ sudo yum install httpd
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
amzn2extra-docker | 3.0 kB 00:00
依存性の解決をしています
...
--> 依存性の処理をしています: httpd-filesystem = 2.4.48-2.amzn2 のパッケージ: httpd-2.4.48-2.amzn2.x86_64
...
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
httpd x86_64 2.4.48-2.amzn2 amzn2-core 1.3 M
依存性関連でのインストールをします:
apr x86_64 1.6.3-5.amzn2.0.2 amzn2-core 118 k
...
mod_http2 x86_64 1.15.19-1.amzn2.0.1 amzn2-core 149 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+8 個の依存関係のパッケージ)
総ダウンロード容量: 1.9 M
インストール容量: 5.1 M
Is this ok [y/d/N]: y
Downloading packages:
(1/9): apr-1.6.3-5.amzn2.0.2.x86_64.rpm | 118 kB 00:00
...
(9/9): mod_http2-1.15.19-1.amzn2.0.1.x86_64.rpm | 149 kB 00:00
--------------------------------------------------------------------------------
合計 6.6 MB/s | 1.9 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : apr-1.6.3-5.amzn2.0.2.x86_64 1/9
...
検証中 : mod_http2-1.15.19-1.amzn2.0.1.x86_64 9/9
インストール:
httpd.x86_64 0:2.4.48-2.amzn2
依存性関連をインストールしました:
apr.x86_64 0:1.6.3-5.amzn2.0.2
...
mod_http2.x86_64 0:1.15.19-1.amzn2.0.1
完了しました!
インストールしたパッケージを更新する yum update
構文
yum update # インストール済みの全パッケージを更新する
yum update [パッケージ名] # 指定パッケージのみ更新する
例
$ sudo yum update
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ chrony.x86_64 0:4.0-3.amzn2.0.1 を 更新
---> パッケージ chrony.x86_64 0:4.0-3.amzn2.0.2 を アップデート
...
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー
容量
================================================================================
インストール中:
grub2 x86_64 1:2.06-2.amzn2.0.1 amzn2-core 44 k
grub2.x86_64 1:2.02-35.amzn2.0.4 を入れ替えます
...
kernel x86_64 4.14.238-182.421.amzn2 amzn2-core 21 M
更新します:
chrony x86_64 4.0-3.amzn2.0.2 amzn2-core 287 k
...
rpm-plugin-systemd-inhibit x86_64 4.11.3-40.amzn2.0.6 amzn2-core 47 k
依存性関連でのインストールをします:
fuse-libs x86_64 2.9.2-11.amzn2 amzn2-core 94 k
トランザクションの要約
================================================================================
インストール 7 パッケージ (+1 個の依存関係のパッケージ)
更新 11 パッケージ
総ダウンロード容量: 31 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/19): fuse-libs-2.9.2-11.amzn2.x86_64.rpm | 94 kB 00:00
...
(19/19): kernel-4.14.238-182.421.amzn2.x86_64.rpm | 21 MB 00:00
--------------------------------------------------------------------------------
合計 31 MB/s | 31 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
更新します : rpm-4.11.3-40.amzn2.0.6.x86_64 2/35
インストール中 : kernel-4.14.238-182.421.amzn2.x86_64 19/35
...
インストール:
grub2.x86_64 1:2.06-2.amzn2.0.1
...
kernel.x86_64 0:4.14.238-182.421.amzn2
依存性関連をインストールしました:
fuse-libs.x86_64 0:2.9.2-11.amzn2
更新:
chrony.x86_64 0:4.0-3.amzn2.0.2
...
rpm-plugin-systemd-inhibit.x86_64 0:4.11.3-40.amzn2.0.6
置換:
grub2.x86_64 1:2.02-35.amzn2.0.4 grub2-tools.x86_64 1:2.02-35.amzn2.0.4
完了しました!
類似コマンドに yum upgrade
がある。yum upgrade
はyum update --obsoletes
と同義であり、更新時に不要となったパッケージを削除してくれる。
パッケージをアンインストールする yum remove
構文
yum remove [パッケージ名]
例
$ sudo yum remove httpd
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.48-2.amzn2 を 削除
--> 依存性の処理をしています: httpd-mmn = 20120211x8664 のパッケージ: mod_http2-1.15.19-1.amzn2.0.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mod_http2.x86_64 0:1.15.19-1.amzn2.0.1 を 削除
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
削除中:
httpd x86_64 2.4.48-2.amzn2 @amzn2-core 4.0 M
依存性関連での削除をします:
mod_http2 x86_64 1.15.19-1.amzn2.0.1 @amzn2-core 382 k
トランザクションの要約
================================================================================
削除 1 パッケージ (+1 個の依存関係のパッケージ)
インストール容量: 4.4 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
削除中 : httpd-2.4.48-2.amzn2.x86_64 1/2
削除中 : mod_http2-1.15.19-1.amzn2.0.1.x86_64 2/2
検証中 : mod_http2-1.15.19-1.amzn2.0.1.x86_64 1/2
検証中 : httpd-2.4.48-2.amzn2.x86_64 2/2
削除しました:
httpd.x86_64 0:2.4.48-2.amzn2
依存性の削除をしました:
mod_http2.x86_64 0:1.15.19-1.amzn2.0.1
完了しました!
リポジトリに更新がないかチェックする yum check-update
構文
yum check-update
例
$ yum check-update
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
openssl.x86_64 1:1.0.2k-19.amzn2.0.7 amzn2-core
rpm-libs.x86_64 4.11.3-40.amzn2.0.6 amzn2-core
...
rpm-plugin-systemd-inhibit.x86_64 4.11.3-40.amzn2.0.6 amzn2-core
不要になったパッケージ
grub2.x86_64 1:2.06-2.amzn2.0.1 amzn2-core
...
grub2-tools.x86_64 1:2.02-35.amzn2.0.4 installed
[ec2-user@ip-172-31-47-3 ~]$
パッケージを探す yum search
パッケージはコマンド名と一致していないこともあります。
(ex.ファイルを検索するlocateコマンドを使用するためにインストールするパッケージは、mlocateです)
その場合は、パッケージ名を検索する必要があります。
構文
yum search [キーワード]
例
$ yum search nginx
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
============================== N/S matched: nginx ==============================
pcp-pmda-nginx.x86_64 : Performance Co-Pilot (PCP) metrics for the Nginx
: Webserver
パッケージの詳細情報を表示する yum info
構文
yum info [パッケージ名]
例
$ yum info httpd
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
利用可能なパッケージ
名前 : httpd
アーキテクチャー : x86_64
バージョン : 2.4.48
リリース : 2.amzn2
容量 : 1.3 M
リポジトリー : amzn2-core/2/x86_64
要約 : Apache HTTP Server
URL : https://httpd.apache.org/
ライセンス : ASL 2.0
説明 : The Apache HTTP Server is a powerful, efficient, and
: extensible web server.
リポジトリの一覧を表示する yum repolist
$ yum repolist
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
リポジトリー ID リポジトリー名 状態
!amzn2-core/2/x86_64 Amazon Linux 2 core repository 25,578
amzn2extra-docker/2/x86_64 Amazon Extras repo for docker 42
repolist: 25,620
パッケージを取得するリポジトリの一覧が表示されています。
上記では amzn2-coreとamzn2extra-dockerという2つのリポジトリからパッケージを取得しているということになります。
リポジトリは/etc/yum.repos.dに.repoファイルとして定義されています。
$ ls -a /etc/yum.repos.d/
. .. amzn2-core.repo amzn2-extras.repo
$ cat /etc/yum.repos.d/amzn2-core.repo
[amzn2-core] # リポジトリー ID
name=Amazon Linux 2 core repository # リポジトリー名
mirrorlist=$awsproto://$amazonlinux.$awsregion.$awsdomain/$releasever/$product/$target/$basearch/mirror.list
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2
enabled=1
metadata_expire=300
mirrorlist_expire=300
report_instanceid=yes
リポジトリーを追加するには、上記のamzn2-core.repoの要領で、下記3点を任意の.repoファイルに追記していきます。
- [リポジトリーID]
- name=リポジトリー名
- baseurl=リポジトリーのURL
AWSでの環境構築で手間取ることはありませんか?環境構築にはLinuxの基礎知識が不可欠だと悟り、私はこの本でLinuxを勉強し直しました。