NetBSD/i386 2.0.2設定いろいろ

なんか日本語のドキュメントが凄く整備されてるおかげであまり苦労しない。

NetBSD/i386 FAQ
http://www.jp.netbsd.org/ja/Ports/i386/faq.html
NetBSDガイド(インストールや設定など)
http://nobug.tukusi.ne.jp/netbsd-guide/trans/netbsd.html
NetBSD FAQとHOWTO
http://www.jp.netbsd.org/ja/Documentation/#faqs-and-howtos

時計合わせ

なんか時計がおかしいと思ったら、デフォルトはシステム時計を世界標準時UTC)で見るもんだから9時間ズレてた(汗)ntpdateコマンドで適当なNTPサーバを指定して時計合わせ。

ntpdate -b ntp.ring.gr.jp

ついでだから、ntpd動かしといて時刻同期するよーにしとこう。/etc/ntp.confの末尾に適当なNTPサーバ名が3つほど入ってるんで先頭に「#」入れてコメントにして、「server ntp.ring.gr.jp」のようにNTPサーバ名を指定。複数ある場合は複数行入れておく。
あとは/etc/ntp.confのdriftfileの指定を調べて、driftfileをtouchコマンドで空ファイルとして作っておく。

vi /etc/ntp.conf
cat /etc/ntp.conf | grep driftfile
touch /var/db/ntp.drift

んで、/etc/defaults/rc.confを参考にして、/etc/rc.confにntpdateとntpdをYESで追加する。/etc/defaults/rc.confにならうなら、defaultroute=の設定の後、WSCONS=の前あたりがいいかも。

ntpdate=YES ntpdate_flags="-b -s"
ntpd=YES ntpd_flags=""

これで起動時に時計合わせをして、以後NTPサーバとして動いてくれることになる。確認する場合は「ntpq -p」でNTPサーバの前に「*」が付いてたら、ちゃんと同期を取ってることになる。

日本語キーボード対応

BSキーでカーソル前の1文字が削除できたりと結構便利に使えるんだけど、やっぱり英語キーボードのレイアウトになってると何かと不便なので日本語キーボードレイアウトに変更する。デフォルトだとコンソールがwsconsなので、以下のコマンドで設定変更ができる。

wsconsctl -k -w encoding=jp

再起動するまで有効だけど、常用にするなら/etc/wscons.confにencoding jpの行を付け加えておけばいいらしい。(#encoding svの行があるので、ここに書くと判り易い)

package toolsの更新

日本語man入れようとcd /usr/pkgsrc/misc/ja-manの後にmakeしようとしたらpackage toolsが古いって怒られた(汗)エラーメッセージで教えられたとおりにコマンドを入力してpackage toolsを更新。
http://nobug.tukusi.ne.jp/netbsd-guide/trans/chap-pack.html#AEN1700

cd /usr/pkgsrc/pkgtools/pkg_install && /usr/bin/make clean && /usr/bin/make install

終わってからpkg_infoで見るとpkg_install-20050718ってのがインストールされてた。

pkgsrcで日本語manをインストール

/usr/pkgsrcからジャンルを選択してインストールしたいパッケージのディレクトリに移動。あとはmakeして、make installするだけ。make cleanで不要ファイルを削除。make clean CLEANDEPENDS=YESで関連パッケージの不要ファイルを削除。

cd /usr/pkgsrc/misc/ja-man
make
make install
make clean CLEANDEPENDS=YES

makeするとパッケージのダウンロードとコンパイルを行ってくれる。動作に必要な他のパッケージがある場合は、それらのダウンロードとコンパイルも行ってくれる。最初にダウンロードを終わらせておくなら、makeの前にmake fetch-list | shをやっておけばいいらしい。
make installでコンパイルされたパッケージが実際にインストールされる。
make clean CLEANDEPENDS=YESでインストールしていらなくなったソースやコンパイル済みのバイナリなんかを削除してくれる。CLEANDEPENDS=YESを付けてるので関連パッケージを一緒にインストールした場合のいらないファイルも削除してくれる。
ちなみに日本語man(ja-man)をインストールすると、以下のパッケージも一緒に入った。

  • digest-20050323
  • gtar-base-1.15.1
  • gmake-3.80nb4
  • ja-groff-0.99
  • ja-less-358nb1
  • ja-man-19990531

そっか、日本語lessも入るんやね。便利、便利。

日本語コンソール

昔、World21ってのがあったと思って調べてみたら、2002年夏頃あたりを最後にサイトが消滅していた模様(涙)もちろん、pkgsrcにも無い。KONも無いしなぁ〜。仕方ないからtelnet使うかね・・・。
http://web.archive.org/web/20020730093918/http://www.asahi-net.or.jp/~pf5y-inue/
で、ふと思い出したようにPocketBSDで使われていたグラフィックライブラリMGLのパッケージを見てみるとi386用があるっぽい。これならX使わずに日本語コンソールが使えるんじゃないか?MGLにはmgtermって日本語対応のターミナルソフトも含まれているみたいだし。
早速、/usr/pkgsrc/graphics/mglからmakeしてみる。が・・・途中エラーでコケてしまった。どうも、前提となるパッケージにx11-linksってのがあって、これがXのヘッダファイルを必要としている模様(涙)そんな・・・。
ちなみに途中でコケたんだけど、前提となるパッケージのいくつかがインストール完了になってた。pkg_infoで見て追加されてたもの。

  • libtool-base-1.5.18nb4
  • jpeg-6bnb3
  • libungif-4.1.3nb2
  • mglfonts-0.1
  • png-1.2.8

てな訳でバイナリパッケージで入れてみる。2.0.2のバイナリパッケージは何故かまだamd64しかないので、2.0のi386ディレクトリにあるのを使う。

pkg_add ftp://ftp.jp.netbsd.org/pub/NetBSD/packages/2.0/i386/graphics/mgl-0.2.0anb2.tgz

無事入ったけど、インストール時に2.0のパッケージですよ?あんたのOSは2.0.2だよと警告が出た。まあ、大丈夫だとは思うけど。
で、早速mgterm動かそうとしたら、libX11.so.6 not foundって・・・えー、うそーん。やっぱり、Xのライブラリ必要なん?

telnetとかを有効に

仕方ないんで日本語コンソールはあきらめて、素直にtelnetで入ることにする。/etc/inetd.confのコメントアウトされているtelnetの部分を有効にするだけ。ついでにftpも有効にしておく。

一般ユーザの追加と削除

当然、デフォルトの設定ではrootでtelnetログインは出来ないので一般ユーザを作っておく。-Gは追加で所属するグループの指定、wheelに所属すればsuできるようになる。グループはデフォルトでusers(gidは100)、-gで指定も出来る。-mはホームディレクトリ同時作成オプション(既にあると失敗する)、-sはシェルの指定、uidは1000から順番に使われる。

useradd -G wheel -m -s /bin/sh tamura

ホームディレクトリには/etc/skelディレクトリの内容を初期設定として用意してくれるので、/etc/skelにpublic_htmlディレクトリとか作っておくと良いカモ。
ユーザを削除するときは「userdel -r tamura」でホームディレクトリも含めて削除してくれる。

日本語マニュアルが表示されない?

一般ユーザを作ったので、WindowsXPからtelnetでログインする。日本語man(jman)は日本語less(jless)で表示するので、環境変数JLESSCHARSETにjapanese-sjisWindows XPtelnetはデフォルトがシフトJISなので)をセットしておく。(LANG=ja_JP.SJISとかでもいいんだけど、PerlがLANG参照して文句言うことが多いので使わない)

JLESSCHARSET=japanese-sjis
export JLESSCHARSET

が、「jman ls」とかしても日本語が文字化けする。なんでだろう?と思ったら、環境変数PAGERにmoreがセットされてる!jmanは環境変数PAGERがセットされてる場合、それを表示に使おうとするんだけど、moreは日本語表示できないのでコケてたって訳か。
しかし、なんでPAGERなんてセットされてたんだろう?と思ったら、.profileにPAGERをセットしてる箇所が!
てな訳で、.profileのPAGER=moreをPAGER=jlessに修正。ついでにJLESSCHARSETの設定も入れておく。csh用の.cshrcにも同じ設定があるけど、csh使わないからいいや。
この設定はどうやらuseraddで作った場合に/etc/skelから.profileとかがコピーされてるっぽい。誰もが同じ設定を使うなら、/etc/skelの.profileや.cshrcを直しておく方がいいかも。

Apache 2.0のインストール

www/ap2-rubyをインストールすると、以下のパッケージが入った。

expat-1.95.8nb2     XML parser library written in C
apr-0.9.6.2.0.54nb1 Apache Portable Runtime
perl-5.8.6nb6       Practical Extraction and Report Language
apache-2.0.54nb1    Apache HTTP (Web) server, version 2
ruby18-base-1.8.2nb2 Ruby 1.8 based release minimum package
ruby18-racc-1.4.4nb1 LALR(1) parser generator for Ruby
ruby18-rdtool-0.6.14nb1 RD (Ruby Document) converter to HTML/man/etc
ruby18-eruby-1.0.5nb4 Interprets Ruby code embedded in a text file
ap2-ruby18-1.2.4nb2 Embedded Ruby for Apache2 (development version)

グループwwwとユーザwwwが作られる。それぞれ1000からの連番なので、既にユーザを作ってる場合はその後になる?ああ、後で一般ユーザ作ればよかった・・・。
あと、/etc/rc.localには既にapacheの起動スクリプトが追加されてるので、コメントを外して有効にすれば次回起動時に起動されると思うんだけど、ここで指定されているスクリプト/usr/pkg/etc/rc.d/apacheが無い。
どうやら/usr/pkg/share/examples/rc.dにサンプルスクリプトapacheがあるので、これを/usr/pkg/etc/rc.dにコピーする。
で、このスクリプトの先頭を読むとrc.confに追加しとけって項目があるので以下の内容を/etc/rc.confに追記する。場所はntpd=YESの後がええかな?

apache=YES apache_start="start"

これで再起動後にApacheが動き出す。今回はプライベートな内部ネットワークに置いてあるので、http://192.168.0.79/にアクセス。ちゃんとApacheのページが表示された。
念の為に一般ユーザでログインして、ホームディレクトリ下にpublib_htmlを作成し、その中に適当にindex.htmlを作成。http://192.168.0.79/~tamura/でアクセス。ちゃんと、表示された〜。てな訳で今日はここまで。