PR

【Linux全般向け】パッケージのバージョンを管理する意味

Linux

こんにちは、ぐっちゃんです。

Linux でパッケージをインストールする際、デフォルトでは 最新バージョン が自動で指定されます。しかし、リポジトリ内のパッケージをバージョン付きで指定すると、古いバージョンのインストールも可能となります。

では、なぜ古いバージョンをインストールが可能なのか、バージョン管理をする意味とは何かについて調べてみました。

まとめ

  • 脆弱性のあるバージョンかの判断ができる
  • 脆弱性の影響外のバージョンへの変更ができる
  • パラメータの変更(追加や削除)使用されるファイルの変更 がある

脆弱性への対処

一番の理由がこちらです
パッケージに脆弱性が見つかった際、共通脆弱性識別子CVE(Common Vulnerabilities and Exposures)が割り振られます。 利用中のパッケージが、CVE の影響範囲内のバージョンか否かの判断で役に立ちます。

例えば httpd に内在していた CVE-2024-38476 (もしくはApache.org)を見てみますと、以下の Affects に「2.4.0 through 2.4.59」とあり、この範囲外のバージョンなら影響はないと読めます。

https://httpd.apache.org/security/vulnerabilities_24.html 内の CVE-2024-38476 より

ソフトウェアによっては、古いバージョンはサポートされていない可能性(サポート対象期間外)があるので注意!

では、実際の環境で確認してみます。(環境は MIRACLE LINUX 9.0)

私の利用している MIRACLE LINUX 9.0では、httpd-2.4.57までしかなく、このCVEには対応できていないことがわかります。

なお、コミュニティ版のサイトを見てみると、最新版が httpd-2.4.62 となっており、既に対応されたものががリリースされています。(2024/10/13 現在)
この場合、リポジトリに最新バージョンのパッケージが入ることを待ちましょう。

新機能の追加

こちらはなかなか気づきにくいです。
バージョンを上げたことによって、設定ファイル内等のパラメータの変更(追加や削除)使用されるファイルの変更がある可能性があります。

  • 廃止になったパラメータを記入したらサービスが起動できなくなった!
  • メジャーバージョンを上げたら、一時ファイルの格納場所が変更されてサービスが正常に動かない!

といったことがあります。


いかがでしたでしょうか?
「バージョン管理は全部最新版にすればいい!」とよく考えがちですが、バージョンによっては脆弱性があったり、回避可能なエラーやリスクについて考えたりすることができます

以上、バージョン管理をする意味 でした。

コメント

タイトルとURLをコピーしました