昨年秋に構築したメインサーバーの稼働が安定してきたので、過去の設定情報やドキュメントを参照するためのバックアップとして保管していたバックアップサーバーのOSをFreeBSD 4.9から8.2に更新する事にしました。
OSはFreeBSD 4.9固定で、更新は行っていなかったものの、ファイヤーウォールでガードされており、ネットワークサービス用のパッケージはメンテナンスしていたのでセキュリティーは十分なのですが、最新版との差が大きくなり、新しく導入したいアプリケーションをmake するとエラーが発生しビルド出来ないものが出てきました。そこで安定版の8.2へアップグレードすることにしたわけです。
上書きインストールとクリーンインストールのどちらにするか?
アプリケーションのインストールは、手動かports利用か?
いろいろ考えた末、今回のアップグレードは、クリーンインストールして、ports パッケージで行く事に決定。
旧OSのHDDから設定などをバックアップした後、HDDを別の空のものと交換。livefs を使ってネットワークからインストール。Kernel Developer を選択してOSをインストール。自分のアカウントとリモートログインだけ設定して後はネットワーク経由で手動で作業する事にしました。サーバーなので特にXは必要なし。
設定作業は、コメントとして追加して行く事にします。
インストール後の作業項目
1. inetd の起動と、telnet, ftpを可能にする事。
2. /usr/ports のソースファイル更新、これには、
csup -L 2 パス/ports-supfile
3. portupgrade コマンドのビルド
途中で聞かれるビルドオプションは、全部デフォルト。
ports ディレクトリの更新と、portupgrade のビルドには何時間か時間が掛かります。
ports から make によりパッケージをインストールするは、依存関係があるパッケージが未インストールである場合、必要なパッケージもまとめてインストールしてくれるのが便利。今回の場合、portupgrade をインストールしたかったのに、こんなにたくさん入ってしまう。
autoconf-2.68
autoconf-wrapper-20101119
automake-1.11.1
automake-wrapper-20101119
db41-4.1.25_4
gettext-0.18.1.1
gmake-3.82
help2man-1.40.7
libiconv-1.13.1_2
libtool-2.4.2
m4-1.4.16,1
p5-Locale-gettext-1.05_3
perl-5.12.4_4
portupgrade-2.4.9.3,2
ruby-1.8.7.358,1
ruby18-bdb-0.6.6
さて、サーバーの使用目的から必要なパッケージをピックアップ。
1. WordPress
2. apache2
3. DNS
4. sendmail
5. imap4, pop3 サーバー
6. dhcpd
8. 日本語文字コード変換
9. 日本語viエディター
10. メールクライアント
11. ftpクライアント
12. アクセスログ解析
13. web-proxy
14. wiki
15. アーカイバー
16. encoder/decoder
17. pptp
これくらい入れておけば、メインサーバーに何かあった時のバックアップとして、切り替え可能になりそう。
FreeBSD 8.2をインストールすると、ja-freebsd-doc-20120308 という技術文書パッケージが自動的にインストールされている。
pkg_version -v で確認すると、より新しいバージョンのドキュメントにアップデートされているらしいので、portupgrade が使えるようになったことから、 portupgrade -a で自動アップデートを掛けました。おそらくビューアー関係のアプリケーションを入れているんでしょう、延々と7時間くらいビルドを続け、100以上のパッケージがインストールされてしまいました。
wordpress はメインサーバーで動作させているので、すぐには必要ないけど、wordpress は apache,php,mysql などの関連パッケージを必要とするため、まとめてインストールできるかと思いwordpressからインストールを開始。しかし、apacheやmysqlは依存関係で自動的には入らなかった。
mysql を手動でインストール。パッケージは、mysql51-server を選択。これで、mysql-client も一緒に導入される。
続いて、Apache2, openssl, bind9, isc-dhcp-server も入れておく。