こんにちは。「クロジカサーバー管理」プリセールスの高瀬です。CentOSやAlmaLinuxを使っていてApache のバージョンを調べると最新版にアップデートしたはずなのにApacheの公式サイトより古くなっています。
2022年8月時点でApacheの公式サイトではhttpd-2.4.54が最新ですが、AlmaLinux 8.6で最新にアップデートしてもhttpd-2.4.37-47.module_el8.6.0 と、マイナーバージョンに差があります。
これはAlmaLinuxの提供元リポジトリで公開されているApacheのバージョンとApacheの開発プログラムの最新バージョンの差となります。今回はこの違いについて解説します。
パッケージとは
Linux用のオープンソースのソフトウェアの多くはWindowsのようにインストールパッケージではなくソースコードを提供されています。
また、Linux OS でもRedhatやDebianなどさまざまな種類があり、環境によってもソースコードをコンパイルして実行可能なプログラムに変換する方法が異なるため、ユーザーがソースコードを入手してからプログラムを利用するためには環境に合わせてmakeなどのコンパイルツールの設定を行う必要があります。
ソフト毎に上記の手順を踏んでいてはあまりにも手間がかかるため、OS毎にソースコードとコンパイルの手順をある程度取りまとめたものがパッケージと呼ばれています。
Redhatやその派生OSではrpm、Debianではdebというパッケージ方式が採用されています。
リポジトリとパッケージ管理ツール
上記のパッケージでLinuxにソフトをインストールするのが楽になるか、といえば実はそうではありません。各ソフトには依存関係と呼ばれるものがあります。
例えば、AというソフトのソースコードがBというソフトの機能を使っている場合、Aをインストールする前にBをインストールしておく必要があります。さらにややこしいことに、BをインストールするにはCとDを先にインストールしておく必要がある、といったことが往々にしてあり、混迷を極めていきます。
各パッケージに依存しているソフトとバージョンを記録しておくことで、パッケージをインストールするときにどのパッケージをインストールすればいいかを知ることはできますが、それだけでは「依存しているパッケージはどこで入手すればいいのか」を常に探す必要が出てしまいます。
そこで、OSで利用できるパッケージと依存するパッケージを全て保管する場所を用意して、そこから必要パッケージを全てダウンロードしてインストールする、という方法がとられています。
上記のパッケージを保管する場所をリポジトリといいます。また、リポジトリから必要なパッケージを探し出してインストールやアンインストールを行うツールはパッケージ管理ツールと呼ばれています。
Redhatのパッケージ管理ツールはdnfやyum、Debianのパッケージ管理ツールはaptが主流です。
リポジトリとソフト開発元のバージョンの違い
上述の通りソフト開発元がソースコードを発表してからパッケージを作成し、場合によってはリポジトリ内の依存パッケージも更新する必要があるため、必然としてリポジトリで公開されるパッケージはソースコードのバージョンより古くなります。
また、リポジトリについてもソフトウェアの開発元が主要なLinuxディストリビューション向けに整備している場合もありますが、各OSの提供元でもApacheやPHPなど主要なミドルウェアと依存パッケージをまとめたリポジトリを公開しています。
Redhatをはじめとした本番環境向けのOSではミドルウェアも含めて安定稼働が求められるため、パッケージも安定性を優先した管理が行われています。
そのため、ある程度安定したバージョンでパッケージ更新を止めておき、重要なセキュリティアップデートや、パッケージそのものの設定不具合があればソースコードのバージョンを変えずに影響箇所だけを変更したパッケージを公開します。
冒頭のApacheのバージョンの例でもソースのバージョンである「2.4.37」の後ろに「.module_el8.6.0 」というような記載があり、ソースとは別にパッケージの種別やバージョンがあることが示されています。
開発元の最新版を常にインストールしなくて大丈夫か
上述の通り、OSのサポート期間中はOS提供元がリポジトリを整備して各パッケージにセキュリティフィックスなどを適用していますので、サポート期間中はOS提供元のセキュリティアップデート情報を確認してパッケージを更新する方法をお薦めしています。
技術力に自信がある方はパッケージが公開される前に自力でソースコンパイルすることで最新版を利用することもできますが、上述の依存関係などを踏まえると、OS提供元が整備したパッケージでアップデートを行う方が遥かに手間が少なく、不具合が起きる可能性も低くなります。
さいごに
クロジカサーバー管理ではお客様のサイトについてヒアリングさせていただき、最適なサーバー構成をご提案させていただきます。
サイト制作のご提案にあたり、インフラ設計に時間を取ることが難しい場合はぜひご相談くださいませ。
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ