FreeBSD10.4で稼働中のサーバーOSを 11.2へ更新しました。FreeBSD11系のトラブルの多さに嫌気が差して11系に上げることをためらっていましたが回避策が見つかり、ようやくサポート切れ環境からサポート環境へ移行することが出来ました。FreeBSDの場合、だいたい M.0 とか M.1 はトラブります。できれば M.2 とかM.3あたりから使い始めたいものです。(Mは9や10のメジャーバージョン)できることなら M.0 は使いたくない。あと1年くらい、10.4 のサポート期間があればスムーズに移行できると思うんですけどねぇ。
過去に何度も書いていますが、OSのサポート切れになったからといって、慌ててOSを更新する必要はないと考えています。要はサーバー運用の仕方。非公開サーバーやクローズ環境の場合は、ロギングとレポートさえしっかり行っておけば、サポートの有無なんて気にする必要はありません。
公開でも、例えば、Webサーバー専用として稼働させており、ポート80,433以外は全て閉鎖しているようなサーバー。こういうサーバーでは、HTTPサーバーのセキュリティーだけ気にしていれば、OSのバージョンは気にする必要はありません。(アプリだけ最新バージョンに上げておけば良いということではなく、何が脅威なのかを把握する必要があります。)
Webの他、関連するサービスを提供していて複数ポートを開いているようなケース。HTTPサービスを行っている場合、メンテナンスに ftp や ssh を開いていることが多く、レポート用に SMTPを使っているなどしていると、サービスパッケージのメンテナンスに労力を割くことは避けられず、できることならバイナリーメンテナンスで解決したいところです。FreeBSDの場合、サポートが切れるとバイナリーパッケージでのメンテナンスがだんだんと出来なくなってきます。それでもソースビルドからのメンテナンスはしばらくの間可能で、ソースメンテナンスで運用すればいいのですが、それもビルド中のエラー発生したりでやがて出来なくなってきます。メインサービス用パッケージがメンテナンスできなくなってくると不都合が出て来ます。サポート切れから数ヶ月後にはOSを更新せざるを得ない状況になることが普通です。
私の場合、ラジコの自動録音が出来なくなるという問題を回避できたため、freebsd-update コマンドで運営環境を保ったまま 10.4から11.2 へ更新しました。
今回のアップデート手順は、いつもの freebsd-update -r コマンドで実行。
10.4から11.2へバージョンアップしたのですが、パッケージを更新するまでは、libcrypto と libssl のシンボリックリンクを作らなくて手も、rtmpdump が動きました。(rtmpdump は10.4で固定中)
www:/lib> ll libcrypt* -r--r--r-- 1 root wheel 57784 2月 16 21:26 libcrypt.so.5 -r--r--r-- 1 root wheel 2055072 1月 4 16:28 libcrypto.so.7 -r--r--r-- 1 root wheel 2542360 2月 16 21:26 libcrypto.so.8 www:/lib> ll /usr/lib/libssl* -r--r--r-- 1 root wheel 834478 2月 16 21:28 /usr/lib/libssl_p.a -r--r--r-- 1 root wheel 807574 2月 16 21:28 /usr/lib/libssl.a lrwxr-xr-x 1 root wheel 11 2月 16 21:28 /usr/lib/libssl.so -> libssl.so.8 -r--r--r-- 1 root wheel 443488 1月 4 16:28 /usr/lib/libssl.so.7 -r--r--r-- 1 root wheel 470352 2月 16 21:26 /usr/lib/libssl.so.8
ラッキーと思ったのは短い間だけ。freebsd-update で更新した場合、OS更新の後、インストール済みパッケージを更新するため、
pkg upgrade
を実行し、再度
freebsd-update install
を行います。この時、旧ライブラリ、libcrypto.so.7 と libssl.so.7 を消されてしまうので、シンボリックリンクで libcrypto.so.8 と libssl.so.8 を .7 に見せかける必要があります。
freebsd-update install を行わなければよかったのかな????
この他、WordPress を動作させるためのPHP環境が、7.1→7.2 に替わっていて、またまた php7 のモジュール環境を消されてしまい、WordPress が動かなくなってしまいました。WordPressパッケージをインストールして、PHP7.2モジュールが道連れインストールされることを期待しましたが、プラグインとの関係か、それだけでは動かず。
過去ログを見ながら、以下のモジュールをインストールしたら動作するようになりましたが、本当に必要なモジュールが何なのかわかりません。もうPHP7.1の時とモジュールが違ってますからね。
> pkg info|grep php72 mod_php72-7.2.15 PHP Scripting Language php72-7.2.15 PHP Scripting Language php72-ctype-7.2.15 The ctype shared extension for php php72-curl-7.2.15 The curl shared extension for php php72-filter-7.2.15 The filter shared extension for php php72-ftp-7.2.15 The ftp shared extension for php php72-gd-7.2.15 The gd shared extension for php php72-hash-7.2.15 The hash shared extension for php php72-json-7.2.15 The json shared extension for php php72-mbstring-7.2.15 The mbstring shared extension for php php72-mysqli-7.2.15 The mysqli shared extension for php php72-session-7.2.15 The session shared extension for php php72-simplexml-7.2.15 The simplexml shared extension for php php72-tokenizer-7.2.15 The tokenizer shared extension for php php72-xml-7.2.15 The xml shared extension for php php72-zip-7.2.15 The zip shared extension for php php72-zlib-7.2.15 The zlib shared extension for php
一応、サーバーOSを FreeBSD 10.4→11.2 に上げる作業は終了。
この後、何もなければいいんですけどねぇ〜。