Linux インストール記

★内容が非常に古くなってしまいました。そのうち書き換えます。

休眠状態にあった私の486マシンに Linux をインストールし, Apache(フリーソフトのWebサーバ)を入れてみました。 名づけて okux(おくっくす)。 期待通り,大学のワークステーション室の SPARCstation を上回るほどさくさくと動きます。

自宅の AMD K5 マシンにも Linux を入れてみました。 こちらは名づけて okuhome。

自宅のマシンでもよく数値計算やアルゴリズムのテストをしていました。 TeX + Mule for Win32 + Cygnus gnu-win32 gcc で, それなりの環境を構築していたのですが, 結果を監視する窓がDOS窓ではスクロールして戻ることもできないので, Mule for Win32 の中で bash を動かしていたのですが, これもいまいち安定せず, C-c C-c でシェルまで止まってしまうことがよくありました。 これも Linux なら, kterm にスクロールバーを付けても Mule のシェルバッファを使っても, たいへん快適に動作します。

研究室でメインに使っている 6x86MX-PR166 マシンにも Linux を入れてみました。 余っているディスクパーティションがなかったので, とりあえず SCSI につながっている ZIP と MO をそれぞれ //usr にしました。 Tekram の SCSI カードを使っていたのですが, Slackware や RedHat パッケージには Tekram で使えるカーネルはなく, Tekram のサーバ から get してきて, 他のモジュールに合わせて再コンパイルしました。 その後,ハードディスクを増設してちゃんと環境を整えました。

★Tekram のドライバはその後正規の Linux カーネルに組み込まれました。

ノートパソコンにも入れてみました。 これは名づけて okunote(奥の手)。 ちゃんと X(SVGA)もモデム/ネットワークカードも認識しています。

借りものの NEC 98NX にもインストールしてみました。 意外とものすごく素直な AT 互換機のようで, X Window まで何の苦もなくインストールできてしまいました。 ただ,「NEC 純正」ネットワークカードは認識しませんでした。

★「NEC 純正」ネットワークカードは eepro100 で認識できることがわかりました。 これは最新のカーネルには入っています。 しかし,やはりいまいち安定しません。

その後,エプソンダイレクトの Pentium II 400MHz に Slackware 3.5 をインストールしました。これが大学内で最高速の UNIX マシンになりました。

自宅の環境づくり

PPP での接続法については 別ページ に移しました。

これで Linux Japan Vol.7 に付いている Netscape Communicator 4.04 も動きます(ときどき Bus error でこけます)。 ただし,日本語入力するには,江後田基広さんが公開されている日本語化パッケージが必要になります。 なお,私(や松阪大学)のホームページは背景色をクリーム色にしていますが, たまたまマウスでテキスト領域を選択したときの背景色も, デフォールトではクリーム色になっています。 これでは見分けがつきませんので,.Xdefaults にたとえば

Netscape*selectForeground:	#FFFFCC
Netscape*selectBackground:	#000000
のように書いておきます。 .Xdefaults を変更したら
xrdb ~/.Xdefaults
と打ち込んで X のリソースデータベースを更新します。

ネットサーフィンよりもわれわれにとって大切なのはメール環境です。 メールを何で読むかは好きずきです。 Mule + Mew なんかが流行りのようですが, いまだに mail(mailx)コマンドを使っている人もいます。 もちろん Netscape Communicator でメールを読み書きすることもできます。 私は mnews + Mule に慣れていましたので, Linuxでも mnews 1.21 を make して使うことにしました。 ちなみに,私の .mnews_setup は次のようになっています。

mime_format: 2
reply_message:奥村@松阪大です。\n\n%F さん:\n
follow_message:奥村@松阪大です。\n\n%F さん:\n
indicator:> 
最後の > の後には半角スペースが入っています。
★以下は古い sendmail についての記述です。 新しい sendmail については,まだ不完全ですが, メールの設定 のページを御覧ください。

さて,メールと言えば sendmail.cf の設定がややこしいところです。 ふつうにインターネットにつながっているところなら, デフォールトの設定でとりあえず大丈夫ですが, PPP で間欠的につながっているので,次のようにしました。 なお,Slackware のものではなく PJE からインストールした sendmail と CF を使い, /usr/sbin/sendmail/usr/sbin/sendmail.nomx へのシンボリックリンクにしておきます。

CF のあるディレクトリ /usr/src/CF-3.6Wbeta6/ に入り,

cp Standards/sendmail-v7.def sendmail.def
として,該当箇所を次のように書き換えます。
OS_TYPE=linux
MX_SENDMAIL=no
DIRECT_DELIVER_DOMAINS=none
DEFAULT_RELAY='okux.matsusaka-u.ac.jp'
これで make sendmail.cf として, できた sendmail.cf/etc に置いておきます。 また,/etc/rc.d/rc.M で sendmail を起動する部分は
  /usr/sbin/sendmail -bd -q15m
となっているはずですが, この -b15m は15分ごとにキューを掃除するという意味です。 つまり,メール送出を15分ごとにリトライしてくれます。 このままでも問題ないのですが, メールを書いてから長い間 ppp しないと, 15分ごとに /var/adm/messages に「ネットワークがつながっていない」というメッセージが入ってしまいます。 そこで,rc.M のこの部分を
  /usr/sbin/sendmail -bd
だけにしておきます。これはリトライしないという意味です。 これでいったん sendmail を kill して, /usr/sbin/sendmail -bd で再起動します。

これでお好きなメールツール(mnews など)でメールを書けば, ローカルのスプールに溜まりますので, ppp したときに sendmail -q と打ち込めば送り出されます。 プロンプトが戻れば全部送り出されたことになります。 もちろん ppp 中は普通にメールするだけで送り出されます。

メールの get は mnews を POP3 モードで使ってもいいのですが, それよりSlackwareに付いている fetchmail を使う方が快適です。 たとえばメールスプールが okux というマシンにあり, ユーザ名が okumura,パスワードが hogehoge なら, ~/.fetchmailrc

poll okux proto POP3 user okumura pass hogehoge keep
のように書いておくと,ppp したときに fetchmail と打ち込めばメールが自ホストの sendmail 宛に送られてきます。 このとき biff n にしておかないと, けっこう賑やかです。^^; 後でゆっくりお好きなメールリーダで読むことができます。

これも面倒なら,fetchmail をデーモンモードで動かしておけば, ppp したときに勝手に取って来てくれます。 詳細は man fetchmail で調べてください。

ただし,メールが届くマシンも Linux の場合は, Slackware に付いている POP3 サーバと相性が悪いようなので, POP3 サーバには QUALCOMM の Qpopper を使うことにしました。 これについては後で書きます。

プリンタの設定

自宅のプリンタは EPSON の PM-750C というものですが, これは MJ シリーズと互換性があるようです。 そこで,PJE に入っている日本語化された Ghostscript を使ってこれを PostScript プリンタに化けさせます。 まず /etc/printcap に次のように書いておきます。 これ以外の lpps で始まる項目がすでにある場合は # でコメントアウトします。

lp|ps|GS printer:\
        :lp=/dev/lp1:\
        :sh:\
        :mx#0:\
        :if=/usr/local/lib/gsf:\
        :sd=/var/spool/lpd:\
        :lf=/var/spool/lpd/lp-err:

次に,/usr/local/lib/gsf というフィルタを作ります。 これは,単にエディタで

#!/bin/sh
/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=mjc360 -sPAPERSIZE=a4 -sOutputFile=- -
と書いておいて,chmod 755 するだけです。 あとは lpc restart all と打ち込めば初期化されます。

実際の印刷は lpr hogehoge.ps のようにして行います。

プログラムリストの印刷は, テキストファイルを PostScript に変換するいろいろなツールの一つを使います。 うちでは昔から toPS というのを使っていたので, Linux にもそれをインストールしました。たとえば

tops hogehoge.txt | lpr
のように打ち込めば袋綴じで A4 の紙に出力されます。

テキスト→PS のフィルタは toPS 以外にいろいろあるようです。

大学では,PS プリンタがネットワーク上にあるので,もっと簡単です。 PSプリンタが hogehoge というホストにつながっているなら, /etc/printcap に次のように書いておくだけです。

lp|ps|PS printer:\
        :lp=:rm=hogehoge:rp=lp:mx#0:

Netscape での印刷でときどき止まってしまうのですが, グレイスケールで印刷するほうがトラブルが少ないようです。

(後知恵)最近のエプソンのインクジェットは海外では Epson Stylus 何とかという名前なので,Ghostscript はこのデバイスを有効にしてコンパイルしておき,/usr/local/lib/gsf

#!/bin/sh
/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=stcolor -r360x360 -sPAPERSIZE=a4 -sOutputFile=- stcolor.ps -
とするとよいらしいことに気づき,しばらくこれで使っていました。 しかし,この設定ではときどき gs が止まってしまうので,結局今は
#!/bin/sh
/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=stcolor -r360x360 -sPAPERSIZE=a4 -sOutputFile=- -
としています。
聞いた話では PM-750C の海外名は Stylus Photo 700 だそうです。

X Window の画面のスクリーンショットは基本的には

xwd | xwdtopnm | pnmtops | lpr
のようにすればいいはずですが,xwdtopnm の出力の maxval が大きすぎるというエラーになることがあります。 エラーにならないようにする簡単なフィルタ ppmfixmax.cc を作りました。
[後記]上記の方法では8ビット色以外の場合に色が変になるようです。 xwd >xwd.out してから convert xwd.out xwd.ps などとして PostScript などに変換する方がうまくいくようです。

POP3 サーバの設定

Slackware に付いていた POP3 サーバは fetchmail で何度も同じメールを取って来てしまうので, Solaris で使っていた qpopper を使うことにしました。 2.4 にはセキュリティホールがあったようで,2.5 以降を使ってください。 ソースを展開したディレクトリで ./configure し,シャドウファイルを使う Slackware の場合は MakefileO_DEFS = ... の行の最後に -DAUTH を追加して make します。 できた popper を適当な場所(たとえば /usr/local/lib)に入れて, /etc/inetd.confpop3 で始まる行を

pop3 stream tcp nowait root /usr/local/lib/popper popper -s
に書き直し,inetdkill -HUP します。
popauth を作るには make popauth とします。

辞書の検索

★以下に書いたことは xdic の出現でゴミになりました。 xdic を使えば X で外字を含めて正しく電子辞書が検索できます。 xdic は1998年8月に fj.sources に流れていました。

辞書の検索ができないと不便でなりません。Windows 95 上ではアスキーの「辞典盤」「辞典盤Pro」を「携速95」で圧縮・仮想 CD-ROM 化して使っていましたが,Linux では PJE に入っている dic を使って同様なことができます。CD-ROM をマウントして,たとえば

dic -f /cdrom/readers/data/honmon -W /misc/dic/readers.dic
のように圧縮して書き出し(サイズは 159713280→66287422 に縮む),
dic -f /misc/dic/readers.dic -M /misc/dic/readers.map
のようにして使います(スクリプトにしておきます)。 Mule 中で使える elisp プログラムもあります。

ここで readers.map は外字マップファイルで,PJE から dic をインストールしたときに /usr/doc/dic に入るサンプルを元にして作ります。 実は,「辞典盤Pro」のリーダーズの外字が, このサンプル中のものとまったく違っているので,困っています。 ちゃんとした外字マップファイルを作られたかたがおられましたら, ぜひお教えください。

まったく人任せでもいけないので, 私も readers.map を作りつつあります。まだ未完成です。 特徴は, 福井玲さん の TIPA という TeX の発音記号フォント/マクロパッケージの記法を使ったことです。 TIPA は CTAN の fonts/tipa にあります。 1次配布先は ここ

これ以外の辞書については, E_dictionary-mini-HOWTO土屋さん のページが参考になりそうです。

セキュリティ関連

Linux のセキュリティに移動しました。

その他

ls で色が付くのを止めるには,/etc/DIR_COLORS~/.dir_colors にコピーし, COLOR ttyCOLOR none にします。 次回のログイン時から有効になります。

音を出すために sox をインストールしました。展開して cp Makefile.unx Makefile し,MANDIR/usr/local/man に直して,makemake install します。 play ファイル名 でたいていの形式のファイルが鳴ります。

Mule の Info のパスは /usr/local/info/usr/local/lib/info となっていましたので,

# ln -s /usr/info /usr/local/lib/info
# cd /usr/info
# gunzip *.gz  (必要なものだけでいい)
しました。

フロッピーを使うためには,まず ls -l /dev/fd0* してみて

brw-rw----   1 root     floppy     2,  40 May 15  1996 /dev/fd0h1440
のようなデバイスがあることを確かめて,
fdformat /dev/fd0h1440
します。これは1440Kの2HDのフォーマットです。 終わったら,
mkfs /dev/fd0h1440
でファイルシステムを作ります。あとは,たとえば /fd0 のような名前のマウンティングポイントを
mkdir /fd0
として作っておいて,
mount /dev/fd0 /fd0
のようにマウントします(この時点では /dev/fd0h1440/dev/fd0 と略せます)。 コピーなどは普通のファイルシステムと同様ですが, 書き込みは非同期で行われますので, コマンドが終了してもフロッピーを抜いてはいけません。 抜く前に必ずアンマウント
umount /fd0
します。 通常のハードディスクと同様にユーザ名やパーミッションを設定できます。 ただ,他のシステムで作ったフロッピーをマウントしようとすると Linux カーネルがパニックになって(ハングして)しまうことがありましたので, あまり安全でないかもしれません。

あるいは,MS-DOS フォーマットしておいて,mtools というツール群を使うこともできます。 使い方は,mdir a: とか mcopy file a: のように, ほぼ MS-DOS の対応するコマンド(に m を付けたもの)と同じです。 これもスーパーユーザになって使います。

Linux で MS-DOS フォーマットするには, あらかじめ fdformat で低レベルフォーマットしておいて, mformat a: します。 あとは fstab を適当に書いておくと便利です。

最新のライブラリをインストール

新しいCライブラリ libc.so.6(いわゆる glibc) に取り換えるのは時期尚早らしいので, とりあえず libc.so.5.4.38 より新しい libc.so.5.4.44 を入れてみました。特に問題はないようです。 入れた後は ldconfig します。

最新の gcc のインストール

★以下は古い内容です。今ではオリジナル gcc より,Cygnus が手を加えた egcs(エッグズ)のほうが確実に良いと思います。 egcs については ここ にインストールの記録を書いておきました。

これを書いている時点で gcc の最新版は 2.8.1 です。 適当なところ(たとえば ftp://ring.nacsis.ac.jp/pub/GNU/prep) から gcc-2.8.1.tar.gz をもらってきてインストールしてみました。

★ Slackware の 3.4 付属の gcc-2.7.2.3 にはバグがあり, うまくコンパイルできないものがあります。 Linux カーネル 2.0.x は大丈夫です。 むしろ新しい gcc でカーネル 2.0.x をコンパイルすると X Window が動かなくなることがあるようです。 これについては Slackware 3.5 のところに書きました。

以下がインストールの手順です。

cd /usr/local/src (たとえば)
tar xvzf ……/gcc-2.8.1.tar.gz
cd gcc-2.8.1
./configure
make LANGUAGES=c
make stage1
make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2"
make stage2
make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2"
make compare    ←ここでエラーが出たら失敗
su
make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2"
exit
rm -r stage1

これで gcc が /usr/bin にインストールされます。

LessTif のインストール

LessTif は OSF/Motif 1.2 互換ソフトです。 現在 0.85.2 が出ています。 詳しくは The LessTif Home Page をご覧ください。

インストールは簡単です:

./configure
make
make install
★最近の配布には LessTif は入っているようです。

TeX については Linux での pTeX,pLaTeX2e のインストール をご覧ください。


リンクはご自由にどうぞ。

松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp

Last modified: Tue Jan 25 19:31:48 2000