Mebius MN-340へのFreeBSD再インストール記(3)

MovableTypeが動いたことで、Webサーバとしてすぐに必要な環境はとりあえず揃った。次に、X無しの日本語入力環境を構築したので、その手順を記録する。他に、sambaとPython Infoのインストール、カーネルのオープンファイル数超過対策についても記録する。

●konインストール
デフォルトのコンソールでは日本語(マルチバイト文字、日本語フォント)が使えないので、konを使うことにした。
portsにkon2-14dotとkon2-16dotというのがあったので、両方試したが、kon2-14dotの方が見栄えが良かったので、こちらを採用した。

●jvimインストール
かな漢fepとしてcannaとFreeWnnを使うことに決め、portsのjvim-canna+freewnnをインストールした。

●cannaインストール
上記の手順でjvimをインストールすると、cannaは自動的にインストールされた。
システム起動時にcannaを起動するよう、rc.confに次の行を足した。

canna_enable="YES"

●FreeWnnインストール
FreeWnnは自動的にインストールされなかったので、portsのFreeWnn-serverをインストールした。
システム起動時にjserverを起動するよう、rc.confに次の行を足した。

wnn_enable="YES"

●Emacs(without X)インストール
個人的に欠かせないPython Info(info pythonで見るマニュアル)をmakeしようとしたら、Emacsが必要であることが判明したので、Emacsの日本語環境も作ることにした。
ports/japaneseを見ると、muleにはmule-canna+freewnnがあるのに、emacsにはそれらしい物が無かった。代わりにemacs-emcwsというのがあり、何だろうと思って見てみたら、これがEmacs+Canna+Wnn+Sj3だった。

emacs-emcws/Makefileを見ると、"NO_X11"が定義されているとX無しになりそうだったので、setenv NO_X11してmakeすると、emacs21がXありでmakeされてしまった。こちらはWITHOUT_X11が必要のようだ。

(1) portsのemacs-emcwsディレクトリに移動し、Makefileを編集
  WITH_FREEWNNをYESに変更、WITH_SJ3をNOに変更
(2) 環境変数NO_X11, WITHOUT_X11設定
  setenv NO_X11; setenv WITHOUT_X11
(3) make install

なお、上記手順でインストールした後、日本語入力可能なEmacsを起動するには、シェルから"emacs"でなく"emcws"で起動する必要があるのでご注意。


●python infoインストール
portsのlang/python25を普通にmakeすると、Python Infoがmakeされなかった。
仕方なく、手動でwork/Python-2.5/Doc/infoでmakeすると、エラーが出た。Makefileの依存関係を追っ掛けて編集しながら試していると、gmakeでないと通らないということに気付いた。
それでもなおpython-lib.infoのmakeには失敗した(Python-2.5.tgzのDoc/lib/*.texがおかしいようだ)ので、python-lib.infoだけはlang/python24の下でmakeした。

Infoのインストールは、手動で行った。手順はDoc/info/READMEに記されているが、*.info*を/usr/local/info/にコピーし、python.dirの内容を/usr/local/info/dirにマージすればOKだ。
なお、infoのトップページが/usr/share/infoにあるので、ついここにinfoを加えてしまいそうになるが、/usr/local/infoに加えるのが好ましいので、注意が必要だ。

●sambaインストール
(1) ports/japanese/sambaをインストール
(2) cd /usr/local/etc; cp smb.conf.default smb.conf
(3) smb.confを編集
(4) /etc/rc.confに'samba_enable="YES"'を追加

●kern.maxfilesの変更
"/kernel: kern.maxfiles limit exceeded by uid ..."というエラーメッセージがコンソールに出るようになった。カーネル再構築時にmaxusersを5にしたので、kern.maxfilesが200になっており(tuning(7)によると数千が普通らしい)、長時間サーバーとして動かして色々やってると、簡単に限界に達するようだ。

kern.maxfilesの値は、次のコマンドで見れる。(sysctl(8)参照)

sysctl kern.maxfiles

現在開いてるファイル数は、kern.openfilesという変数名で参照できる。
sysctl kern.openfiles

見た感じ、kern.maxfilesを300にすれば大丈夫のようだったので、/etc/sysctl.confに次の行を追加した。

kern.maxfiles=300


○portsのjvim-canna+freewnnをインストールした時にFreeWnnが自動的にインストールされなかったので、てっきりWnn6が商用である関係でportsに無いのだと思い込んでしまい、FreeWnn-1.1.1-a021.tar.bz2から手動でmakeしようとしたら、wnn本体はできたが、PubdicPlusのmakeができなかった。PubdicPludディレクトリでxmkmfすると、Makefile.inの"@top_srcdir@"が解決されなかったのだ。
1つ上のディレクトリのconfigureスクリプトによって解決しないといけないようであり、1つ上のMakefile.inにPubdicPlusを自動的にmakeするようにするのを諦めたらしい謎のコメントを見つけたが、それ以上深追いしなかった。

○portsのemacs-emcwsをmakeする時、たまたまMakefileのWITH_FREEWNNオプションに気付いて設定変更したが、前記のNO_X11, WITHOUT_X11も含めて、こういう設定すべきオプションは、本来どのようにして知れば良いのだろう?
portsによってはmake configでオプションが設定できるようになっているが、emacs-emcwsには無かった。

○Portsを使ってsambaをインストールしたら、バージョン2.2がインストールされてしまった。
過去の記憶に従って適当に設定したら、とりあえずWindowsマシンから共有ディレクトリにアクセスできるようになったのだが、時々、

nmbd[...]: samba name server ... is now a local master browser for workgroup ... on subnet ...

という行を含む6行のシステムメッセージがコンソールに出るようになってしまった。バージョン1.xを使ってた時には見覚えが無い。
メッセージの内容的には害が無いものだが、コンソールを荒らされるのが鬱陶しい。smb.confのsyslog設定で治るものだろうか?今後の課題だ。