Warning: count(): Parameter must be an array or an object that implements Countable in /usr/local/www/admnote/wp-includes/post-template.php on line 284

FreeBSD 10.0へのアップグレード

freebsd-updateを使ってFreeBSD 9.2-RELEASEからFreeBSD 10.0-RELEASEに。どうしてなかなか、一筋縄では行きませんでした。

10.0-RELEASEのインストール

OSのインストール

現状のツリーを最新にしてからアップグレード。

インストールする。

途中で自動変更しきれなかった分の手動変更のためのプロンプトが出るので、その都度Enterを押してエディタを起動してから、内容を確認した上で編集する。

新OSをインストール。

/etc/fstabの編集

ここで問題発生。再起動されない。SakuraのVNCコンソールから起動画面を見てみると、次のようにエラーが出てブート途中で止まっていた。ただし、2台目ではこのような問題は出なかったので、こうなる原因は不明。

SakuraがVPSのラインナップを変更した際、デバイス名が変更になったためらしい。まずデバイス名を確認。

ドライブ名の先頭の数文字が変更されたことがわかる。ブートディスク(vtbd0s1a)を指定してマウント。シェル指定をするようプロンプトが出たら、リターンキーを押す。(好みがあれば指定してもいいけど、大した作業をするわけでもないので、shで困らない。)

/usr もマウント。

viで/etc/fstabを編集。

次のように/etc/fstabを書き換える。

1フィールド目にあるデバイス名の先頭文字を「a」→「vtb」に変更するだけ。

/etc/defaults/rc.confの編集

これも2台目では不要だった。viでrc.confを開く。

次の行を編集、または追加し、Sakuraから指定されたホスト名、IPアドレス、ゲートウェイIPアドレスを設定。

設定完了したら、OSを再起動。

再起動したら残りをインストールして、また再起動

残りのインストール

2台目では/etc/fstabや/etc/defaults/rc.confの編集が不要だったので、素直に残りをインストールしてから再起動。

pkgのインストールとports再ビルド

portsの管理方式が変更されているため、pkgをインストール。コマンド起動すれば、自動的にインストールされる。

管理データベースを旧形式から変換し、再作成。

個別に依存関係などの問題を解決する必要があったと思うけれども、メモしきれていないので割愛。

PHPのインストール

portsを使わず自分でコンパイルしているPHPを個別にビルドし直してインストール。

途中でlibtoolをコピーしているのは、何もせず普通にmakeするとlibphp5.soが作成されなかったため。環境によりlibphp5.soが作成されない場合があるバグがあるらしい。不具合が発生する条件は不明。libphp5.soが作成されなかった場合には、portsからインストールされているlibtoolをPHPのソースディレクトリにコピーして再ビルドすれば良いとのこと。

この先PHPをアップグレードするたびにlibtoolをローカルにコピーする必要があるのか、今回限りなのかはまだ不明。

OSアップグレードの残りのインストール

サードパーティのパッケージ再構築まで完了したら、再度OSアップグレードの残りをインストールし、システム再起動。

BINDからUnbound/LDNSへ移行

具体的な影響としては、BIND由来のツールである「nslookup」や「dig」が使えなくなる。

FreeBSD 10.0以降では、次のようにすれば良い。

  • nslookupの代わりに「host」コマンドを使用
  • digの代わりに「drill」コマンドを使用
  • どうしてもnslookupやdigを使いたければ、bind-tools(dns/bind-tools)をインストール

特にコマンドにこだわりがあるわけでもないので、hostとdrillを使っていこうと思う。