Red Hat Enterprise Linux / CentOS

前回前々回と、Windows 10で導入しやすいという理由からUbuntuとSUSE Linux Enterprise ServerまたはopenSUSE Leapでパッケージをアップデートする方法を取り上げた。使用する管理コマンドは異なるが、パッケージ管理の概念と操作の方法は似通っていることがわかったんじゃないかと思う。

個人での利用においてはUbuntuが多いが、エンタープライズでの運用という視点で見ると、やはりRed Hat Enterprise LinuxまたはCentOSが依然として多い。先日取り上げたSUSE Linux Enterprise Serverは欧州での企業ユースが多いが、米国や日本はRed Hat Enterprise Linuxが多数を占める状況だ。事業規模の小さい業務ではCentOSが使われるケースも多い。

Red Hat Enterprise LinuxやCentOSのパッケージ管理システムの概念はこれまでに取り上げてきたUbuntuやSUSE Linux Enterprise Linuxとよく似ている。今回は、Red Hat Enterprise LinuxまたはCentOSのパッケージをアップデートする方法を取り上げる。

CentOSでパッケージアップデート

今回は無償で使用できるCentOSのパッケージアップデートを取り上げる。Red Hat Enterprise Linuxでも同じことができる。まず、ほかのLinuxディストリビューションと同じようにパッケージ管理のメタデータを更新する。メタデータの更新は「yum check-update」で実施する。

  • yum check-update

    yum check-update

  • yum check-updateが完了したところ

    yum check-updateが完了したところ

yum check-updateはメタデータを更新するとともに、更新対象となるパッケージ一覧の表示も同時に行う。アップデート対象を確認したら、次は「yum update」でパッケージのアップデートを実施する。

  • yum updateでパッケージのアップデート開始

    yum updateでパッケージのアップデート開始

アップデート対象が表示されたあとで、次のようにアップデートを実施するかどうか聞かれるのでy↩と入力して処理を進める。

  • y↩️で実際にパッケージアップデートを開始

    y↩で実際にパッケージアップデートを開始

  • パッケージアップデート中

    パッケージアップデート中

  • パッケージアップデート完了

    パッケージアップデート完了

パッケージアップデートを実施すると、依存関係などからインストールしておく必要のないパッケージが生まれることがある。こうした不要になったパッケージは「package-cleanup --leaves」というコマンドで一覧表示させることができる。「yum remove」でパッケージを削除できるので、この2つのコマンドを組み合わせることで、不要になったパッケージをアンインストールすることができる。コマンドとしては「yum remove $(package-cleanup --leaves)」のようになる。

  • package-cleanupとyum removeを組み合わせて不要になったパッケージを削除する

    package-cleanupとyum removeを組み合わせて不要になったパッケージを削除する

なお、package-cleanupはyum-utilsというパッケージに含まれているため、利用する前に「yum install yum-utils」のようにyum-utilsをインストールしておく必要がある。

CentOS、openSUSE Leap、Ubuntuの違いまとめ

今回取り上げたCentOSと、これまでに取り上げたopenSUSE LeapおよびUbuntuとのコマンドの違いをまとめると次のようになる。

RHEL/CentOS SLES Ubuntu
yum check-update zypper refresh apt update
yum check-update zypper list-updates apt list --upgradable
yum update zypper update apt upgrade
yum remove $(package-cleanup --leaves) zypper packages --orphaned --unneeded; zypper remove パッケージ名 apt autoremove

後発だけあってUbuntuのaptはこの辺りの操作がわかりやすくまとまっている印象を受ける。しかし、基本的にできることはどのディストリビューションでもそれほど変わらない。基本的な仕組みが似ているので、できることにもあまり違いがないというのが現状だ。

パッケージのインストールやアンインストールといったもっと基本的な操作をまとめると次のようになる。

RHEL/CentOS SLES Ubuntu
yum install パッケージ名 zypper install パッケージ名 apt install パッケージ名
yum remove パッケージ名 zypper remove パッケージ名 apt remove パッケージ名
yum search パッケージ名 zypper search パッケージ名 apt search パッケージ名

こんな感じで使用するLinuxディストリビューションを変更しても、パッケージ管理に関してはそれほど大きな違いがない。最初はコマンドの違いに戸惑うかもしれないが、一度整理してしまえば結構どのディストリビューションも利用できるようになる。今使っているLinuxディストリビューションに飽きてきたら、ためしに他のLinuxディストリビューションを使ってみるというのも手だと思う。