CentOSなどのRedHat系のLinuxでは、yumコマンドを使用して、配信されているパッケージのリポジトリから、 様々なソフトをインストールすることが出来る。
- yumでインストール可能なパッケージとインストール済みのパッケージを表示したければ
yum list コマンドをオプション無しで実行する。
sudo yum list
- yumで利用可能なパッケージを確認したければ
yum list available コマンドを使用する。 表示されるパッケージ数が多いので、パイプを利用して以下のように使うことが多い。 (例)MySQL関連のパッケージを一覧表示する場合
sudo yum list available | grep mysql
- yumでアップデート可能なパッケージを確認したければ
yum list updates コマンドを使用する。
sudo yum list updates
yum check-update でも確認できる。
sudo yum check-update
- yumでアップデート可能なパッケージの各バージョンを確認したければ
yum --showduplicates list コマンドを使う。
sudo yum --showduplicates list パッケージ名
sudo yum info でも見れる。
sudo yum info パッケージ名
- yumで配信されているパッケージを最新状態にしたければ
yum update コマンドを使用する。
sudo yum update
- yumでインストールした履歴を確認したければ
yum history list コマンドを使用する。
sudo yum history list
読み込んだプラグイン:fastestmirror, langpacks
ID | コマンドライン | 日時 | 操作 | 変更
-------------------------------------------------------------------------------
27 | --security update | 2019-09-24 11:50 | I, U | 80 EE
26 | install createrepo | 2019-09-24 11:43 | Install | 3
25 | update bind* | 2019-04-25 19:18 | I, U | 32 EE
24 | update bind* | 2018-05-21 18:19 | Update | 6
23 | update bind* | 2018-01-23 10:16 | Update | 6
22 | update bind* | 2018-01-17 15:51 | Update | 6
21 | update bind* | 2017-09-14 11:28 | Update | 6 EE
20 | update bind* | 2017-07-06 14:50 | Update | 6 EE
19 | update bind* | 2017-05-11 15:23 | Update | 6
18 | update bind* | 2017-03-03 21:04 | Update | 6
17 | update bind* | 2017-02-15 11:57 | Update | 6
16 | update yum | 2017-01-13 12:06 | Update | 2
15 | update bind* | 2016-12-21 13:33 | I, U | 7 EE
14 | update bind | 2016-10-04 22:16 | Update | 6
13 | update bind | 2016-09-28 14:15 | Update | 6
12 | update | 2016-02-18 16:40 | I, U | 336 EE
11 | update bind | 2016-01-21 13:10 | Update | 6 EE
10 | -y install bind bind-chr | 2015-11-24 17:03 | I, U | 6
9 | remove ntp | 2015-09-15 15:41 | Erase | 1
8 | -y install ntp | 2015-09-15 15:33 | Install | 2
history list
こんな感じで表示されるので、その履歴の詳細を確認したければ、ID番号を指定して下記のコマンドを実行。
yum history info ID番号
実行すると、指定したID番号でインストールや更新した一覧が表示される。
- yumでインストールしたパッケージを確認するなら
sudo yum list installed
絞り込みしたければ、grepを使う。
sudo yum list installed | grep postfix
- yumでインストールしたパッケージのバージョンの履歴を確認したければ
sudo yum history package-list postfix
読み込んだプラグイン:fastestmirror, langpacks
ID | 操作 | Package
-------------------------------------------------------------------------------
1 | インストール | postfix-2:2.10.1-6.el7.x86_64
history package-list
のように、パッケージ名を指定し、コマンドを実行。
複数のバージョンの更新履歴があれば以下のように表示される。
- yumでインストールしたパッケージの依存関係を調べたければ
yum deplist コマンドを使用する。絞り込みしたければ、grepを使う。
sudo yum deplist postfix | grep ldap
provider: openldap.x86_64 2.4.44-21.el7_6
依存性 : libldap-2.4.so.2()(64bit)
provider: openldap.x86_64 2.4.44-21.el7_6
- yumのリポジトリを新たに追加するには
sudo yum install epel-release
といった感じ。
- 追加したyum リポジトリを一覧で確認するには
sudo yum repolist all
でOK。有効なものと無効なものが表示される。
もくじ
CentOSでのセキュリティアップデートをyumでやる場合の注意点
本来「yum --security update」と実行すると、セキュリティパッチのみアップデートされるはずだが、 CentOS7の場合はリポジトリにセキュリティアップデート情報が提供されていないので、 通常のアップデートが実行されてしまう。
そこで、セキュリティアップデートができるように、 CentOS用のセキュリティ情報を提供しているCEFS projectの情報を基に、 ローカルリポジトリを導入することで、yumでセキュリティアップデートが行えるようにしなければいけない。
上記では、
CentOS does not provide the necessary metadata in the repos for yum-plugin-security to function. It does not work on CentOS.
と回答しており、yumリポジトリのセキュリティプラグインに必要なメタデータを提供していないとしている。
yum update で対応せよ。とのこと。
また、こちらのgithubリポジトリはまだ活発で、CentOSのsecurity update toolを開発している。こちらのリポジトリの活用も検討してみるのも良いかもしれない。
CentOS用のセキュリティ情報を提供しているCEFS projectというものがあるので、このプロジェクトが提供している情報をもとに リンク先のPythonのスクリプトで、updateinfo.xmlを作成し、ローカルリポジトリを導入してそのリポジトリをSecurityのパッケージのリポジトリにしてしまうというもの。
上記の対応でもアップデートされないyumパッケージがあった時に分かったこと※重要
実は、CEFS projectの情報を基に作成したyumリポジトリでは、CEFS project自体に、「エポック番号」に対応していないことが yum update --security してもアップデートされないパッケージがある原因だった!
generate_updateinfo.pyでもepochは補完されない
「エポック番号」とは、
「Epoch」はパッケージの新旧を比較するために使われる数値で、指定されていない場合は「0」と見なされる。 rpmコマンドやyumコマンドでパッケージをアップデートする場合、通常はVersionやReleaseの値の大小を比較してバージョンの新旧をチェックするのだが、Epochの値が指定されていた場合は、この値の大小でバージョンの新旧がチェックされる。つまり、VersionやReleaseの値が古い(数値が小さい)場合でも、Epochの値が大きければそちらのパッケージがより新しいものと認識される。
Epochは通常パッケージ名には表示されないため、利用するとバージョンの新旧が判別しにくくなる。 そのため、明示的に古いバージョンのものをインストールさせたい場合などを除き、利用は基本的には推奨されていない。
じゃあ、どうやってyumパッケージのセキュリティ管理していくのか
代替策として、Vulsを使っていくのは有効かもしれない。
🤦♂️公務員から転職したくて悩んでる
🤦♀️でも身近に相談できる人が居ない
🤦♂️家族には相談できない…
🤦♀️ちょっと話を聞いてもらいたい…
とお悩みのあなた!
もとろぐに相談してみませんか?
僕に人生を前進させるお手伝いをさせてください。LINEでお待ちしております🙋♂️
※すぐにブロックしていただいても大丈夫ですので、お気軽にお問い合わせください☺