yum
yum は redhat 系 distro のパッケージ管理システムです。 後継の dnf へ変更されつつあります。 いまは、その端境期ですが、最終的に、いつ yum が消えるのかは不明…
シンタックスは次のとおりです
yum [オプション] コマンド [オプション] [パッケージ名]
引数で[パッケージ名]
となっているのは、パッケージ名がつかないコマンドもあるからです
たくさんのコマンドやオプションがありますが、下記のいくつかを知っていれば実用的には十分でしょう
普段つかいの yum (基本的な使い方)
アップデート
yum update
パッケージのデータベースを更新し、
更新するべきパッケージがあれば、
更新(新しいバージョンをインストール)してください。
インストールする前に[y/n]
と聞いてくるので、インストールしてよいならy
[y/n]
と聞いてくれるのは安全のためです。
ソフトウエアの組み合わせによっては、なにかを最新版にすると動かなくなったりするので、
念のため[y/n]
と聞いてくれます。
大丈夫、そういうことは気にしない(滅多にない)と信じる強者は、
-y
オプションをつけて、
どんな時でも最新版にしちゃいましょう
yum -y update
インストール
yum install パッケージ名
[例]
yum install nginx
問題は、インストールしたいパッケージ名が分からない時です ;-)
【補足】 なお、パッケージ名をさがす操作例を、 このページの最後に載せておくので参考にしてください
パッケージ名をさがす
新しいソフトをインストールする場合、そもそもパッケージの名前がわかりません ;_;
パッケージ管理システムのデータベースを検索するには次のコマンドを使います
yum search パッケージ名
部分的に一致すれば候補を表示するので、単語の一部だけでもいれて表示させてみましょう。 よって割と雑な探し方でもよくて、
yum search editor
とすれば、エディタに関係するものが、すべて出てきます。 ただ、表示される短い説明だけでは、わからない部分も多くて、 結局 google することが多いんですけどね… (-o-;;)
いちおう有名ソフトウエアのパッケージ名は、そのままなので大丈夫だと思います。 たとえば本編で使う nginx は nginx です。 でも、同じく WWW サーバの代表格 apache のパッケージ名は httpd になります (apache ではインストールされるプログラムが httpd です)。 このへんはソフトウエアの名前の由来にまつわるものなので、 有名どころは無理やり覚えてください。 (ちなみに apache の前身が NCSA httpd = HTTP daemon で、そのまま httpd という名を踏襲しています)
バージョンを指定した方が良いものもあります。 たとえば Python はバージョン 2 と 3 があり、しかも後方互換性がありません。 でも python 2 を長く使っているために、2 が標準、3 がオプションという distro もあれば、 方針が逆の distro もありえます。
yum install python3
なら、たいてい大丈夫。
mysql のように、さらに由来の複雑なものもあります。 mysql 社が Oracle 社に買収されて、Oracle社の mysql 商用版と mysql community 版、 mysql原作者がスピンオフして開発している mariadb と3系統あります。 これは OSS の歴史的変遷を知らないと区別できませんけども… (ちなみに my も maria も娘さんの名前由来だそうです)。 そんなわけで、 いちばんライセンスが無難な mariadb のライブラリとクライアントが標準でインストールされていたりします (Amazon Linux 2 は、このパターン)
削除したい
yum remove nginx
もくは
yum erase nginx
削除する前に[y/n]
と聞いてくるので削除してよいならy
実行例「パッケージを検索する」
Q: lsof コマンドが必要らしいので、インストールしたいけれど、パッケージ名はなんだろう?
A: とりあえず、lsof という名前でインストールしてみよう… あ、これは lsof で正解の例でした!
% yum install lsof
Loaded plugins: ovl, priorities
Resolving Dependencies
--> Running transaction check
---> Package lsof.x86_64 0:4.87-6.amzn2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
lsof x86_64 4.87-6.amzn2 amzn2-core 332 k
Transaction Summary
========================================================================================
Install 1 Package
Total download size: 332 k
Installed size: 927 k
Is this ok [y/d/N]:
... 以下略 ...
Q: ip コマンドも必要らしいのですが、パッケージ名がわからない…
A: やってみましょう … だめでした orz
% yum install ip
Loaded plugins: ovl, priorities
No package ip available.
Error: Nothing to do
検索してみましょう
% yum search ip
Loaded plugins: ovl, priorities
=============================== N/S matched: ip ================================
GeoIP.x86_64 : Library for country/city/organization to IP address or hostname
: mapping
GeoIP.i686 : Library for country/city/organization to IP address or hostname
: mapping
... 合計 629 行も出力されるので以下、略 ...
ip なんてマッチするものが多すぎて全然わかりません(@-@;;)
こういうとき、 コマンド名からパッケージ名は、どうやって調べるの?と言うと、yum provides です
% yum provides ip
Loaded plugins: ovl, priorities
iproute-3.10.0-87.amzn2.x86_64 : Advanced IP routing and network device
: configuration tools
Repo : amzn2-core
Matched from:
Filename : /sbin/ip
... たくさん出力されるので、以下略 ...
3行目にある iproute-3.10.0-87.amzn2.x86_64 の部分がパッケージ名になります。 いろいろなバージョン番号が表示されますが、 基本的に最新版をいれるので、バージョン名以降は不用で iproute をインストールします
% yum install iproute
yum install iproute
Loaded plugins: ovl, priorities
amzn2-core | 3.7 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package iproute.x86_64 0:4.15.0-1.amzn2.0.4 will be installed
--> Processing Dependency: libmnl.so.0(LIBMNL_1.0)(64bit) for package: iproute-4.15.0-1.amzn2.0.4.x86_64
--> Processing Dependency: libmnl.so.0()(64bit) for package: iproute-4.15.0-1.amzn2.0.4.x86_64
--> Running transaction check
---> Package libmnl.x86_64 0:1.0.3-7.amzn2.0.2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================
Installing:
iproute x86_64 4.15.0-1.amzn2.0.4 amzn2-core 510 k
Installing for dependencies:
libmnl x86_64 1.0.3-7.amzn2.0.2 amzn2-core 23 k
Transaction Summary
==============================================================================================================================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 533 k
Installed size: 1.3 M
Is this ok [y/d/N]:
... 以下略 ...