2004年5月5日記

ハックキットをインストールした後何をするか


はじめに

ハックキット提供者の山下氏は、ハックキットは玄箱で「apt-getができるまで」を目的としていると言っておられます。ハックキットで好きなものを簡単にインストールできる環境になったのであとは好きにしてねという意味でしょうね。 好きにしろとはいっても、玄箱は通常のPCのようにディスプレイデバイスが付いていませんから、巷のデスクトップ版Linuxディストリビューションのように、全てGUIで設定できるようにはなっていません。 Linuxの動作の仕組みを理解したい向きは、telnetでログインして、samba, netatalk, proftbd, ..などをインストールして、使えるようにしていくのも一興でしょう。(とはいっても、デーモンの動かし方くらいしかわかるようにはならないけど)

ハックキットのご本尊のページでは、dhcpサーバ、sambaの設定方法まで解説されていますが、それ以外は特に説明がありません。自分で調べてやれということでしょう。 私の場合、10年前のunixしか知らず、当時は/etc/rc.localというシェルスクリプトに自分が起動させたいデーモンに関する記述を追加する方法が一般的でしたが、これならDOSのAUTOEXEC.BATのメカニズムと余り変わらないので理解が容易だったのですが、最近は複雑になってますね。Linuxの流儀に慣れるまでたいへんです。 Linux初心者にはちょっときびしいので、典型的な手順をまとめました。次のようなかんじかな。自分のための覚え書きのための駄文です。

おまじない

ハックキットをインストール後に最初にやることをまとめました。最初の3つのトピックスの情報源は「2ちゃんねる」です。

fsck抑制

玄箱は24回起動するごとにfsckを行うようになっているらしく、それを抑制するためのおまじない。
# tune2fs -c0 -i0 /dev/hda1
# tune2fs -c0 -i0 /dev/hda3

shutdown -h nowやrebootを使えるようにする

shutdown -h nowやrebootコマンドでシャットダウンや再起動ができないようになっているので、できるようにするおまじない。/etc/init.d/haltの記述に赤字部を追加。
# See how we were called.
case "$0" in
 *halt)
 message=$"Halting system..."
 command="halt"
 echo -n "EEEE" > /dev/ttyS1
 ;;
 *reboot)
 message=$"Please stand by while rebooting the system..."
 command="reboot"
 echo -n "CCCC" > /dev/ttyS1
 ;;
 *)
 echo $"$0: call me as 'rc.halt' or 'rc.reboot' please!"
 exit 1
 ;;
esac

xterm, ktermを使えるようにする

xterm, ktermがrootからしか使えなかったので、使えるようにするおまじない。/etc/fstabの以下の記述を変更。
none            /dev/pts        devpts  gid=5,mode=20                  0 0
を
none            /dev/pts        devpts  gid=5,mode=620                  0 0
に変更

tcshを使えるようにする

私の場合、tcshがなければはじまりません。でも、Linuxerはbashを使うのが正しい流儀?

/etc/shellsにtcshを追加し、普段使っている.cshrcを玄箱に持ってきた。

sudoを使えるようにする

システム関係の設定をするとき、suでrootになってやるのでもいいのですが、suのままほったらかし状態にでもなったらあぶないんで、sudoのほうがいいかな。MacOS Xユーザにはお馴染みか。
# apt-get install sudo

$ sudo やりたいコマンド
Password: パスワード入力
で一般ユーザアカウントからでもシステム設定ができて大変便利。

サーバ機能のインストールと設定

パッケージのインストール

まずは、必要なサーバ機能のインストール。telnetでログインし、suしてから、
# apt-cache search package-name
で、「package-name」という名前のパッケージを探します。あれば、一覧が表示されます。パッケージが見つかったら、
# apt-get install package-name
でインストールできます。自分の玄箱にインストール済みのパッケージを調べるには、以下のコマンドでOK。
# rpm -qa
例えば、samba, netatalkをインストールするなら、次のようにします。
# apt-get install samba
# apt-get install netatalk
(注)「LinkStation/玄箱 をハックしよう」のページの解説によれば、こうやってsambaをインストールしても2GB超のサイズのファイルは扱えないようです。どうすればよいかは、
ここに解説があります。

サーバ機能の設定

サーバ機能(デーモン)を有効にする設定を、まとめてみます。

chkconfigで起動時に有効になるデーモンの一覧を見る。ここで0〜6の数字はランレベル。
# chkconfig --list
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
random          0:off   1:off   2:on    3:on    4:on    5:on    6:off
rawdevices      0:off   1:off   2:off   3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
inet            0:off   1:off   2:off   3:on    4:on    5:on    6:off
keytable        0:off   1:off   2:on    3:on    4:on    5:on    6:off
lpd             0:off   1:off   2:off   3:off   4:off   5:off   6:off
httpd           0:off   1:off   2:off   3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:off   3:on    4:on    5:on    6:off
dhcpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
proftpd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:off   3:off   4:off   5:off   6:off
named           0:off   1:off   2:off   3:off   4:off   5:off   6:off
FreeWnn         0:off   1:off   2:on    3:on    4:on    5:on    6:off
smb             0:off   1:off   2:off   3:on    4:on    5:on    6:off
atalk           0:off   1:off   2:off   3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
xfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off

起動時にデーモンを有効にするには、
# chkconfig daemon-name on

例えば、Webサーバを有効にするには、
# chkconfig httpd on

あとは、必要に応じてデーモンの設定ファイルを書き換える。設定ファイルは、/etc内にある。daemon-name.confのような名前になっている。

これで玄箱を再起動後にデーモンが有効になりますが、再起動せずにデーモンだけ起動するには、
# cd /etc/init.d
# daemon-name start

既に起動しているデーモンの設定ファイルを書き換えて、玄箱を再起動せずにその設定を有効にするには、
# ps ax | grep daemon-name
でデーモンのプロセスIDを表示させて、
# kill -HUP デーモンのプロセスID

基本的な作法は、こんなところか。直接デーモンを起動させるのではなく、inetdで必要なときに起動させる設定といった例外もあるようだけど。 inetdを介してデーモンを起動させるのは、以下のような手順。ftpサーバを例に解説。

ftpサーバといってもProftpdとかwu-ftpdとか幾つかの選択肢があるようです。LinuxではProftpdを使うのがトレンドらしい。

Proftpdのインストール

# apt-get install proftpd

/etc/inetd.confの以下の行をコメントアウト。
#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd

/etc/proftpd.confの以下の行をコメントアウト。
ServerType inetd

proftpdの有効化と確認
# chkconfig proftpd on
# chkconfig --list proftpd

再起動せずに有効化
# kill -HUP inetdのprocessid

日本語環境

あまりまじめにやってません。玄箱はサーバなんで、日本語ドキュメントが読める程度でよいかな。

FreeWnnのインストールと設定
# apt-get install FreeWnn
# cd /etc/rc.d/rc3.d
# ln -s ../init.d/FreeWnn S99FreeWnn

emacsのインストールと設定
# apt-get install emacs
# apt-get install emacs-dl-wnn
日本語の設定がされた.emacsがいっしょにインストールされたようだ。

.cshrcに以下の記述を追加
alias emacs 'emacs -nw '
alias ls 'ls -vC --show-control-chars -F \!*'

SambaでWindowsから作った漢字名のディレクトリでも、ちゃんとtelnetからのlsで表示されます。

emacsで日本語入力するには、CTRL+「\」キーで漢字モードにします。

日本語マニュアルのインストールと設定
# apt-get install jman_pages

.cshrcに以下の記述を追加
setenv MANPATH /usr/share/jman:/usr/local/man:/usr/share/man:/usr/X11R6/man
setenv PAGER 'less -K euc'
alias less 'less -K euc '
alias man 'jman'


   前(サーバ名の設定) 目次 次(GUI設定ツールの導入)