RedHat 5.2をCOMPAQ LTE5400にインストールしてみた(その2)


さて、無事にリブートできたところで、何はなくともキーマップを書き換えなくてわ。

cd /usr/lib/kbd/keytable して、とディレクトリを移ろうとすると、No such file or directoryなどと言うでわないか。あれ?

ls /usr/lib/kbd して見てみると、consolefonts、consoletrans、keymaps と3つのディレクトリがあるが、keytablesはない。RedHat 5.2からはキーマップなどの持ち方が変ってしまっているようだ。う〜む。

さらにkeymapsの下にも、amiga、atari、i386、mac、sunなどとなっていて、こりゃアーキテクチャごとに分けたのかな?たぶんi386の下に置いてあるんだろう…

cd i386

なぁんと、さらにdvorakだのqwertyだの、ディレクトリが一杯あんぞ!どこのキーマップを使うんじゃい。試しにloadkeysして見てやれ。

loadkeys jp106

などとすると、

Loading /usr/lib/kbd/keymaps/i386/qwerty/jp106.map.gz

などと白状するヤツ。なるほどね、i386のqwertyの下っすか。はいはい。

cd /usr/lib/kbd/keymaps/i386/qwerty して gunzip -dc jp106.map.gz > pingo.mapとする。

ホスト名がpingoなので、キーマップもpingoなのだ(笑) で、vi pingo.mapで開き、keycode 29をCaps_Lockに、keycode 58をControlに、さらに、controlkeycode 53をControl_underscoreに書き換えてやる。このControl_underscoreってのが、jedを使う上はキモなのだ。Undoの秘奥義と言われている(笑)

:wqで抜けて、gzip pingo.mapとして固めてやろう。vi /etc/sysconfig/keyboard すると、1行だけ、KEYTABLE=jp106 などと書いてあるので、

#KEYTABLE=jp106
KEYTABLE=pingo

と書き換えておく。これで次回ブート時からpingo.mapが有効だ。とりあえず今はloadkeys pingoとして直接手でマップしなおしちゃう。Caps LockとControlが入れ替っているのを確認して落ち着く。ふぅ。

さて、普段入るときのユーザアカウントを作るか。パスワードも入れちゃえ。

useradd -g users toru
passwd toru

これで、toru のアカウントができ、users groupに追加される。念のため、/etc/passwdと/etc/groupを見ておく。ためしにLoginしてみよう。よしよし。グ〜だぜ。

さて、コンダラ1号のパッケージ置き場から、いつも使うパッケージをブチ込もう。lsmodして見てみると、autofsはインストールしたままのkernelでも使えるようだ。nfsも使えるかな?

mkdir -p /mnt/nfs などとしてmount pointを作り、

mount 192.168.9.16:/usr/local/src/redhat /mnt/nfs

とやってみると、お〜使えるやんけ。だったらとっととjedを入れてしまおう。viも使えないこたないけど、やっぱjedの方がいいよなぁ。どうせこれから各種設定ファイルをゴソゴソ書き換えるんだし。

rpm -ivh /mnt/nfs/RPMS/i586/slang_jp-1.2.2j054-3.i586.rpm
rpm -ivh /mnt/nfs/RPMS/i586/slang_jp-ldevel-1.2.2j054-3.i586.rpm
rpm -ivh /mnt/nfs/RPMS/i586/jed-0.98.7j054-2.i586.rpm

実はオレ個人が使っているパッケージはほとんどが、pgcc-2.91.57の-O6 -mpentiumでコンパイルされていて、佐藤さんに教えてもらった秘技(笑)でもってi586なアーキテクチャが指定されているのだった。

cp /usr/lib/jed/lib/jed.rc ~/.jedrc

として、無事にjedが立ち上がるのを確認する。よしよし。あとはコンダラ1号のtoruのホームディレクトリからいろいろと設定ファイルなぞを持ってこなければならぬ。まっさきにauto mounterの設定をしよう。

メインなコンダラ1号では、CD-ROMドライブ、ユーザtoruのホーム、パッケージ作成用の/usr/local/src/redhatがすでにexportされているので、それらをautofsを介してマウントしてやるのだ。

/etc/auto.master には

/auto  /etc/auto.removable     --timeout 10

などとした。デフォルトだと/etc/auto.miscを使うようになってるんだけど、Slack時代からの習慣でauto.removableを使ってるんだよね。まぁ単にファイル名なんで実際なんでもいいんだが。で、/etc/auto.removable には

src	-rw,rsize=1024,wsize=1024	pinga:/usr/src/redhat
lsrc	-rw,rsize=1024,wsize=1024	pinga:/usr/local/src/redhat
toru	-rw,rsize=1024,wsize=1024	pinga:/home/toru
jaz	-rw,rsize=1024,wsize=1024	pinga:/auto/jaz
cdrom	-rw,rsize=1024,wsize=1024	pinga:/auto/cdrom
lcdrom	-fstype=iso9660,ro,unhide	:/dev/cdrom
floppy	-fstype=auto,rw,noexec		:/dev/fd0

などと書いておく。pingaってのはコンダラ1号のホスト名だ。この時点で、pinga、pingoの2つは/etc/hostsに書いておいた。

さらに、auto.removableに実行ビットが立っていると、automounterがmap typeをprogramと判定してしまい、auto.removableをshell scriptとして実行しようとしてしまうので注意だ。オレもハマッたことがある(笑) なんだかワケワカだけどマウントできないっつ〜状態になるんだよね。

さて、

/etc/rc.d/init.d/autofs stop
/etc/rc.d/init.d/autofs start

して見る。この時のオプションは restart でもいいのだろうが、オレ的には習慣として、設定ファイルなどを大きく変えた、ないしはデフォルトで入ってたのを捨てる、などのときには、もう明示的に止めちゃうことにしている。なんだかよくわからない状態になったらイヤだからねぇ。

automounterが立ち上がったのを確認したら、おもむろに

ls /auto/lsrc

などとして、確かにpingaの/usr/local/src/redhatがアクセスできるのを確認する。さて、パッケージをボコボコ入れちゃうぜ。

まずは、ncurses だ。これがなくっちゃ make menuconfig ができぬ。kernelの再構築をmake configでやるのはいささかかったるい。かといって、まだXは動かすまでは遠いもんな。だからせめてmenuconfigを使いたいじゃん。

インストール時に実はncursesだけは入れてあるのだが、これは単なる依存性のツジツマ合わせのためで、ncurses-develは入れてない。だけどncurses-develに含まれているヘッダファイル等がないと、make menuconfigは動かないのだ。

だが、オレが普段使っているncursesってば、pgcc 2.91.57でコンパイルしちゃってたりするから、ncursesそのものは大丈夫だが、ncurses-develの方がlibstdc++ 2.9.0に依存しちゃってたりする。というワケで、真っ先に入れ替えなければならないのは、libstdc++なのだった。マニアックっつ〜か、コンダラだよなぁ(笑)

libstdc++を2.9.0に置き換えようとすると、昨日入れたパッケージ構成だと

groff-1.11a-6
xosview-1.6.1a-4
xpdf-0.7a-1

がlibstdc++ 2.8.0に依存しているので、--nodeps などで強引に入れ替えると、これらはみな動かなくなってしまう。だが実は、秘かにlibstdc++ 2.9.0の下でrebuildしたパッケージがあるのでいつでも差し替えreadyなのだった(笑)

てなわけで、

rpm -e --nodeps groff
rpm -e xosview
rpm -e xpdf

としてとっとと削除してしまい、この場は一時黙らせておく。groffは普通に rpm -e すると当然ながらman が依存しとるわボケなどと言われるので、--nodeps で強引にブッ飛ばす。さて、これで下準備はオッケー。

rpm -Uvh /auto/lsrc/RPMS/i586/libstdc++-2.9.0-3.i386.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libstdc++-devel-2.9.0-3.i386.rpm

としてlibstdc++を2.9.0に置き換え、続けて

rpm -Uvh /auto/lsrc/RPMS/i386/groff-1.11a-6.1.i386.rpm
rpm -Uvh /auto/lsrc/RPMS/i386/groff-gxditview-1.11a-6.1.i386.rpm
rpm -Uvh /auto/lsrc/RPMS/i386/xosview-1.6.1.a-4.1.i386.rpm
rpm -Uvh /auto/lsrc/RPMS/i386/xpdf-0.7a-1.1.i386.rpm

として一通り戻しておく。pgccでmakeした、またはlibstdc++-2.9.0に依存する、などの理由で単にrebuildはしたものの、中身はまったくほげってないパッケージは、判別のためにすべてリビジョン番号に .1 を追加してある。rpm -U で突っ込めるようにという配慮もある。

さて、懸案のncursesを入れ替えよう。

rpm -Uvh /auto/lsrc/RPMS/i386/ncurses-4.2-10.1.i386.rpm
rpm -Uvh /auto/lsrc/RPMS/i386/ncursesl-devel-4.2-10.1.i386.rpm

で、次はjpegなどの画像モノをpgccでmakeしたヤツに差し替えてしまうことにする。

rpm -Uvh /auto/lsrc/RPMS/i586/libgr-2.0.13-13.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libgr-devel-2.0.13-13.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libgr-progs-2.0.13-13.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libjpeg-6b-7.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libjpeg-devel-6b-7.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libpng-1.0.2-1.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libpng-devel-1.0.2-1.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libtiff-3.4-4.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libtiff-devel-3.4-4.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libungif-3.0-4.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libungif-devel-3.0-4.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/libungif-progs-3.0-4.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/zlib-1.1.3-2.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/zlib-devel-1.1.3-2.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/imlib-1.8-5.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/imlib-cfgeditor-1.8-5.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/imlib-devel-1.8-5.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/xpm-3.4j-3.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/xpm-devel-3.4j-3.1.i586.rpm

これで、普通なら ImageMagick を入れる準備は整っているはずなのだが、オレが使っているものは FreeType 付きでmakeしてしまっているので、FreeTypeのパッケージを入れてやらねばならない。今日作ったばかりのfreetype-1.2のパッケージを入れてやろう。

rpm -ivh /auto/lsrc/RPMS/i586/freetype-1.2-1.i586.rpm
rpm -ivh /auto/lsrc/RPMS/i586/freetype-devel-1.2-1.i586.rpm
rpm -ivh /auto/lsrc/RPMS/i586/freetype-tools-1.2-1.i586.rpm

としてまとめて入れてやる。まぁ実際にはdevelもtoolsも要らないんだけどね。で、

rpm -Uvh /auto/lsrc/RPMS/i586/ImageMagick-4.1.0-1.1.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/ImageMagick-devel-4.1.0-1.1.i586.rpm

としてImageMagickも差し替えてやった。FreeTypeも入ったので、VFlib2も入れる。

rpm -ivh /auto/lsrc/RPMS/i586/VFlib2-2.24.0-0.5.i586.rpm
rpm -ivh /auto/lsrc/RPMS/i586/VFlib2-devel-2.24.0-0.5.i586.rpm

VFlib2-VFjfm-2.24.0-0.5.i586.rpmってのは、TeXを使えないオレ的にはワケワカなので入れてない(笑) 次にTcl/Tk関係を差し替えよう。こいつらは今日パッチをあてて作ったばっかりなんで、どうなるかわからんけど(笑) 一応コンダラ1号では差し替えて動いているので大丈夫だろう。

rpm -Uvh /auto/lsrc/RPMS/i586/tcl-8.0.3jp-20.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/tk-8.0.3-20jp.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/tclx-8.0.3jp-20.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/tix-4.1.0.6jp-20.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/expect-5.26jp-20.i586.rpm

として全部無事に入るのを確かめる。とりあえずこうしておいて、printtoolとかその手のが動くかどうかは後で様子を見ることにしよう。さて、次はGTK+関係を入れよう。

rpm -Uvh /auto/lsrc/RPMS/i586/glib-1.0.6jp-4.i586.rpm

だが入らぬ。

failed dependencies:
        glib = 1.0.6 is needed by gtk+-1.0.6-3

だとぅ? 1.0.6よりも1.0.6jpの方が大きいとは判定してくれないのか? GTK+-1.0.4なんかをアップデートするときはサクサク入ったのに。数字の部分しか見てないのだろうか…謎だ。まぁいいわい。

rpm -e --nodeps glib

としてglibだけ消してしまえ。それからおもむろに

rpm -ivh /auto/lsrc/RPMS/i586/glib-1.0.6jp-4.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/gtk+-1.0.6jp-4.i586.rpm
rpm -Uvh /auto/lsrc/RPMS/i586/gtk+-devel-1.0.6jp-4.i586.rpm

としておとなしく入った。これでライブラリ関係はだいたいいいかなぁ。はぁ。さて、今日はこの辺にしとこう。


メール 戻る