パッケージ管理システムの最も便利な機能は「アップデート」、または「アップグレード」の機能だ(パッケージ管理システムでは、アップデート・アップグレードは似たような意味で使われていることが多い)。

WindowsやMac OS Xのように、ソフトウェアに必要なものが全て単一のパッケージにまとまっているシステムならば問題ないのだが、LinuxのようなUNIX系のパッケージシステムでは、インストールしたソフトウェアのバージョンを上げたい場合、注意が必要だ。依存するライブラリなども含めて一斉にアップデートする必要があるし、そのライブラリに依存しているほかのソフトウェアに関しても、影響が出ないように考慮しなければならない。最近のパッケージ管理システムでは、そうした面倒な処理をまとめて引き受けてくれるのだ。

なお、UNIX系OSでも、PC-BSDのPBIのように、WindowsやMac OS Xなどと同じ仕組みを採用したものもある。そうしたシステムでは、バージョンアップもバージョンダウンもかなりお手軽に実施できる。その際、よく問題になるのは、パッケージ間で重複するコードを持つことになるため、サイズが膨れ上がることだ。だが、PC-BSDのPBI2ではこうした問題にも対処されている(ただし、PC-BSDはPBIからpkgへ移行しようとしている)。

パッケージ管理の対象にはどこまで含まれるのか?

パッケージ管理システムの管理対象が、カーネルやベースシステムを含むのか、それとも後からインストールしたサードパーティ製ソフトウェアだけに限定されるのかは、ディストリビューションごとに異なる。筆者の体感では、Linuxディストリビューションでは、カーネルやシステムも含めて単一のパッケージ管理システムでアップデートできる仕組みにしてあることが多いように思う。

一方、カーネルのみならずユーザランドも開発している*BSD系のディストリビューションでは、カーネルやシステムのアップデートと後からインストールしたパッケージの管理を別物として扱っていることが多い。ただし、FreeBSDなどはカーネルやベースシステムも含めて単一のパッケージ管理システムで管理する方向で取り組みを進めており、いずれはどのディストリビューションも似たような操作でシステムまでアップグレードできるようになる可能性がある。

アップデート用コマンド「yum(8)」

それでは今回は、CentOS 7を例にとり、パッケージやシステムを最新バージョンにアップデートする方法について説明しよう。まず、「yum list installed」とコマンドを実行すると、システムにインストールされているパッケージを一覧表示させることができる

「yum list installed」を実行

一覧表示にカーネルやカーネルモジュールなどが含まれている

一覧表示の中にはカーネルやカーネルモジュール、コアユーティリティなどが含まれており、ベースシステムもパッケージ管理システムの管理対象になっていることがわかる。このままいきなりアップデートをかけても良いのだが、まずはどのパッケージがアップデートされるのかを確認してみよう。それには、次のように「yum check-update」と実行する。

「yum check-update」と実行

インストール済みパッケージのアップデート確認ができる

ここまで来たら、パッケージをまるごとアップデートだ。「yum update」を実行してみよう。

「yum update」を実行

インストール済みパッケージを全てアップデートできる

後は、アップデート内容に合わせてサービスの再起動などを行うことになるのだが、手っ取り早いのは単純にシステムを再起動することだろう。

毎日のようにソフトウェアの脆弱性が発見されていることを考えると、こうしたシステムとソフトウェアの定期更新は、セキュリティを高める意味でも有効だろう。いったんサービスを開始してしまったシステムでは、気軽に再起動できないというケースも少なくないが、できればサービスの開始前に部門間でよく話し合い、定期的な再起動を実施できる体制にしておきたいところだ。

今回のおさらい

今回のおさらいは、次のとおりだ。

  • パッケージ管理システムは、サードパーティ製ソフトウェアだけでなく、カーネルやベースシステムにも対応していることがある
  • 「yum list installed」で、インストール済みパッケージを一覧表示できる
  • 「yum check-update」で、アップデート可能なパッケージを一覧表示できる
  • 「yum update」で、パッケージを一括アップデートできる

「特定のパッケージのバージョンを固定しておきたい」とか、「特定のパッケージだけアップデートしたい」となるといろいろと面倒なのだが、常に一括アップデートでOKならば、今回紹介した操作方法を覚えておけば大体万事がうまくいく。本当に便利になったものだ。