FreeBSD pkgでのdb5問題
FreeBSD pkgでのdb5問題
結構前からネットで検索しているのですが、あの手この手でdb5問題を解決している人がいるようですが完璧な解決方法が見つかっておりません。
解決方法としてはports使って/etc/make.confへオプション指定という流れみたいなんですが「将来的なpkgとの整合性を取るため」、「更新を短時間で終わらせるため」という理由で業務使用しているようなFreeBSDサーバを停止させられるメンテナンス時間は限られているのでportsからのアプリケーションのインストールリスクは正直避けたい所。まあ脆弱性発見の緊急対応ならばしかたないんでしょうけど。
で、全世界(?)的に問題となっているのがFreeBSDが毎日送ってくるdaily security run outputに
db5-5.3.28_9: Tag: expiration_date Value: 2022-06-30
db5-5.3.28_9: Tag: deprecated Value: EOLd, potential security issues, maybe use db18 instead
を吐き出す問題。
メッセージの通りdb18をインストールすれば解決出来るみたいな軽いノリで書かれていますが、そうは簡単には行きません。
db5が関連しているpkgを
DEFAULT_VERSIONS+= bdb=18
WITH_BDB6_PERMITTED=yes
make.confに上記を追記してportsからインストールすれば解決みたいな感じで書かれている事が多いようですが、アプリケーションによってはそうは簡単には行かないみたいです。上記はpkgのみで運用しているサーバではまったく意味がないのでportsでシコシコインストールしているサーバ管理者向けの話です。
自分が複数台管理しているサーバ上で上記のdb5の削除を試みてみると
pkg delete db5
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 3 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
db5: 5.3.28_9
portupgrade: 2.4.16,2
ruby31-bdb: 0.6.6_8
Number of packages to be removed: 3
The operation will free 51 MiB.
Proceed with deinstalling packages? [y/N]: N
依存しているのはruby31-bdb。portupgradeがruby31-bdbに依存しているのでdb5を削除するとportupgradeが使えなくなってしまう。ちなみにmake.confに先の追記を行ってpkgのportupgradeを削除して再インストールしてもdb5もまた再インストールされてしまいますのでmake.confへのオプション記載はpkgでは無意味です。しかしports大好きマンにとってportupgradeなんかFreeBSDを運用するのに必須なものに期限切れのdb5のままのpkg放置するというのは、ruby31-bdbを管理している所が全くやるきないか、無責任なのか、そんの知らんって感じでしょうかね?pkgの依存関係は結構この辺いい加減というか我関せず的な雰囲気があって放置しっぱなし。まあ雰囲気的に逃げたって感じもするけど。
で、よくよく考えてみればpkgでアプリケーション管理しているサーバでportupgradeが必要か?って事なんですよね。ネット上に溢れている情報を鵜呑みにして「おまじない」みたいにpkgからインストールしたportupgradeが必要なければpkg delete db5でdb18も必要ないって事になります。
db5もここのフォーラムに質問されている内容のようにapahe24などに依存している場合はportsからインストールする必要がありますがpkgのみで運用しているサーバならばportupgradeを削除してruby31-bdbの更新を待つかぐらいしか手がないみたいです。単純にdaily security run outputのdb5関連のメッセージを無視続けるしかないというのが現状なのかな。
以上、「FreeBSD pkgでのdb5問題」でした。