" />
本ページはプロモーションが含まれています。

スポンサーリンク

Linux

Linuxのパッケージマネージャー-yum

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 upgradeyum 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を勉強し直しました。

スポンサーリンク

-Linux