1999/06/11    Rawhide Installation into PM8115/110

遂に観念して linuxppc-dev-rel/1.0 を入れてみる事にした。仕事は取り敢えず PowerBook でできるので、PowerBook の R5 移行のための R&D という位置づけである。従って目標は を使えるようにする事。

[1] インストール

基本的には福井さんのおかげでほとんど問題なく済んだ。有り難いことである。MkLinux にインストールするために必要なファイルは

        Installer-Mklinux-G7R5.tar.gz
        hdlist

        http://home7.highway.ne.jp/~k_fukui

から入手した。その他

        SysVinit-2.76-2.ppc.rpm
        m4-1.4-GFK2.ppc.rpm
        nfs-server-2.2beta40-1a.ppc.rpm
        nfs-server-clients-2.2beta40-1a.ppc.rpm

も頂いてきた。特に nfsd は、MkLinux ではカーネルサポートがないので、当分はユーザーランドの nfsd を使わざるをえない。遅いがないよりははるかにましである。

ファイルが手には入ったら、後は DR3 とほぼ同じ手順で進む。ただし、福井さんのインストーラーに入っていた bootstrap.conf はなぜか、vmlinux+installer ではなく vmlinux を探しに行ってしまったので編集した。いったんインストーラーが起動するようになったら後はスムーズであった。インストール用の RedHat は長田さんの所

  ftp.ccex.miyazaki-u.ac.jp/pub/ftp.linuxppc.org/linuxppc-dev-rel/1.0

をネットワークインストール指定で使わせていただいた。これまた有り難いことである。約50分ほどでインストールが完了した。
福井さんのページの教えに従い、

        # ln -sf tty0 /dev/console

は、この時点で別のバーチャルコンソール(VC)に入ってやっておく。

[2] 試運転

取り合えず、リブートする。ここで、run level 5 にはいり、xdm が立ち上がろうとする際にXが固まった(OS は生きている)。VC1 に行って見るとフォントパスの問題(100dpi が見つからない)。入れていないので見つかるわけはない。
また長田さんの所から

        XFree86-100dpi-fonts-3.3.3.1-49a.ppc.rpm

を頂いてきて入れる。今度は無事 gnome が立ち上がるが、PM8115/110 では荷が重い。

        # vi /etc/inittab
        ....
        id:3:initdefault:
        ....

として、有無を言わさず gnome という設定をはずす。ここは、R4 では level 3 でも xdm となっていたが、普通の設定に戻されたようである。
startx では依然として enlightenment + gnome であるが、これはその内変更することにし、作業はコンソールで続行する。

福井さんの指摘のように /etc/fstab より /dev/pts のエントリーを、また /etc/rc.d/rc.sysinit で nonfs を mount するファイルタイプから削除する。
また、
        # ln -sf ../mach_server/System.map /boot

として、カーネルバージョンが違うとうるさく文句を言ってくるのを黙らせる。
 

ここで、次にネットワークの設定をしようとしたとき eth0 が立ち上がっていないことに気づく。ま、これは結果的には好ましいことであったが、本来立ち上がるべきなので追求すべき問題である。取り合えず、まわりの世界から隔離された状態で、/etc/inetd.conf でいらないサービスを止める(実際、ssh を使うつもりなら全て止めてしまっても大した問題はない)。また、hosts.deny、hosts.allow をそれぞれ設定する。これも基本的に全面拒否の設定とする。

さーて、なぜ network が立ち上がらなかったのか?再起動して、/etc/rc.d/init.d/network が eth0 を立ち上げようとする様子を見ていると、xargs がないと怒っている。スクリプトを見てみると PATH は正しく通っているように見える(functions をソースしたときに設定されるはず)。また、ちなみにこのスクリプトを手動で起動する(# ./network start) とちゃんと eth0 が立ち上がる。症状的には、あたかもこのスクリプトが実行される時点で /usr がマウントされていないかのようである。これは合点が行かないが、

        # vi /etc/rc.d/init.d/network
        ......
        #interfaces_boot=`ls ifcfg* | egrep -v '(ifcfg-lo|:)' | egrep 'ifcfg-[a-z0-9]+$' | \
        #            xargs egrep -l "ONBOOT=[^n][^o]" | sed 's/^ifcfg-//g'`
        interfaces_boot=`for i in $interfaces; do egrep -l "ONBOOT=[^n][^o]" ifcfg-$i | sed 's/^ifcfg-//g'; done`

として /bin のコマンドだけでしのぐことにした。だが気持ちは悪い。とにかくこれで、eth0 は起動時に立ち上がるようになった。
 

[3] 諸々のインストール

[3-1] ssh-2.0.13-1b

これは、基本的には、DR3 用のものを再コンパイルしただけだが、chkconfig 対応にし、また、run level 2-5 で起動するようにシムリンクの張り方を変えた。鍵箱(.ssh2 など)は DR3 のものを "cp -rp" した。これはネットワーク越しにやらないこと。取り合えずこれで安心して通信できるようになった。ついでに、sftp の際のプログレスバーが画面を埋め尽くす問題(仕様?)も直した。
 

[3-2] Xaw3d-1.3-21a

kterm とかアテナウイジェットを使ったアプリケーションを入れる前に、いつものようにこれを置き換える。デフォールトのものは、スクロールバーにアローが
ないし、また、16bpp ではシャドーがとても醜い。SRPM の SPEC を

        make EXTRA_DEFINES='-DARROW_SCROLLBAR -DUSEGRAY'

として再コンパイル。インストール後は

        # cd /usr/X11R6/lib
        # mkdir libXaw.ORIG
        # mv libXaw.so.6.1 libXaw.ORIG
        # ln -s libXaw3d.so.6.1 libXaw.so.6.1
        # ldconfig

などとしておく。libXaw.so は libXaw.ORIG/libXaw.so.6.1 にシンボリックリンクしておいた方がよかもしれない。何かパッケージを作ったときに Xaw3d を要求するのはユーザーには不親切かも。
 

[3-3] ミニマム日本語環境

これまた長田さんの所

  ftp.ccex.miyazaki-u.ac.jp/pub/pre-R5.ja

および、noarch については JRPM より、以下のものを頂いてきていれる。
ただし、TeX については後述。

何はともあれ、まず ja locale つき glibc(これが、glibc2.1 に移行したい最大の理由の一つ)。

        glibc-2.1.1.j01-2c_rh.ppc.rpm
        glibc-devel-2.1.1.j01-2c_rh.ppc.rpm
        glibc-profile-2.1.1.j01-2c_rh.ppc.rpm

かな漢字サーバーは Canna と Wnn の両方のユーザーがいるので両方。

        Canna-3.5b2-3rh.ppc.rpm
        Canna-devel-3.5b2-3rh.ppc.rpm
        Wnn-4.2-7_rh.ppc.rpm
        Wnn-devel-4.2-7_rh.ppc.rpm

ただし、このパッケージは /usr/local に入れる古い仕様だが、気にせずに、あるものは有り難く使わせていただく。
 

TrueType を使えないと gs で文書を読むのもつらい。

        VFlib2-2.24.2-4jrpm_rh.ppc.rpm
        VFlib2-VFjfm-2.24.2-4jrpm_rh.ppc.rpm
        VFlib2-devel-2.24.2-4jrpm_rh.ppc.rpm
        xtt-fonts-0.19990222-1.noarch.rpm

そして、VFlib2 が入ったならば

        ghostscript-5.50jp-1rh.ppc.rpm
        ghostscript-fonts-5.50jp-1rh.noarch.rpm

端末上で、日本語の man も読めないと困るので

        groff-1.11ajp-3rh.ppc.rpm
        groff-gxditview-1.11ajp-3rh.ppc.rpm
        groff-tools-1.11ajp-3rh.ppc.rpm
        man-1.5g-2_rh.ppc.rpm

順番が逆のような気もするが、これがなければの必携の武器:

        nkf-1.70p1-1_rh.ppc.rpm
        kterm-6.2.0-8_rh.ppc.rpm
        less-332jp-5jrpm_rh.ppc.rpm
        a2ps.pl-1.44-1.noarch.rpm

ここで忘れずに $HOME/.inputrc を

        $ cat > ~/.inputrc
        set convert-meta off
        set meta-flag on
        set output-meta on
        ^D

のように作って 2-byte 文字が通るようにしておく。
 

[3-4] kinput2

このさいだから、kinput2 も新しくすることに。ただし、古いレイアウトの Canna と Wnn を使っているので、いずれはそのアップデートに合わせて修正が必要だが、PM8115/110 で Canna/Wnn の再コンパイルの元気は出てこない。

        kinput2-v3-1a.src.rpm

        kinput2-canna-v3-1a.ppc.rpm
        kinput2-canna-wnn-v3-1a.ppc.rpm
        kinput2-wnn-v3-1a.ppc.rpm

ただし、今までと違って、インストールは一つのパッケージを入れるだけで済むユーザーに優しい JRPM スタイル。
 
 

[3-4] TeX

まず、以下のファイルを長田さんの所

  ftp.ccex.miyazaki-u.ac.jp/pub/pre-R5.ja

および、noarch については JRPM より頂いてきて "rpm -Uvh" する。この順番でやれば良い。

        kpathsea-3.2-5jrpm_rh.ppc.rpm
        kpathsea-devel-3.2-5jrpm_rh.ppc.rpm
        pTeX-2.1.8-5jrpm_rh.ppc.rpm
        pTeX-MetaFont-2.1.8-5jrpm_rh.ppc.rpm
        pTeX-MetaPost-2.1.8-5jrpm_rh.ppc.rpm
        pTeX-jtfms-2.1.8-5jrpm_rh.ppc.rpm
        pTeX-tfms-2.1.8-5jrpm_rh.ppc.rpm
        asiya24-1.0-1.noarch.rpm
        watanabe-vf-1.0-1.noarch.rpm
        vftool-1.2-1.noarch.rpm
        vf-1.0-9.noarch.rpm
        pLaTeX2e-19980901-1jrpm.noarch.rpm
        pLaTeX2e-MFsrc-19980901-1jrpm.noarch.rpm
        pLaTeX2e-pLaTeX209-19980901-1jrpm.noarch.rpm
        pLaTeX2e-tfms-19980901-1jrpm.noarch.rpm
        LaTeX2e-amslatex-1.0-0.noarch.rpm
        LaTeX2e-graphics-1.0-0.noarch.rpm
        LaTeX2e-tools-1.0-0.noarch.rpm
        dvipsk-5.78ajp-5jrpm_rh.ppc.rpm
        xdvik-20cjp-6jrpm_rh.ppc.rpm

と、思っていたのだが、ところがどっこい、ls-R ができそこないだと怒られまくる。そして、文句を言われるだけなら知らんぷりもできるが、xdvi も dvipsもフォントを生成してくれない。何が変わったのかといろいろ思いあぐねた結果 ls -LAR ./ で、頭に ./ がつかなくなってしまったことに思い至る。これは、新しい、fileutils の仕様のようである。というわけで mktexlsr を変更して逃げることにした(99/06/17 パッチ更新)。

--- pTeX-2.1.8/web2c-7.2/kpathsea/mktexlsr.orig Thu Jun 17 22:30:52 1999
+++ pTeX-2.1.8/web2c-7.2/kpathsea/mktexlsr      Thu Jun 17 22:32:42 1999
@@ -107,7 +107,10 @@
   until PERMS=`kpsestat = "$db_file"`; do sleep 1; done
   chmod $PERMS "$db_file_tmp"
   rm -f "$db_file"
-  mv "$db_file_tmp" "$db_file"
+#  mv "$db_file_tmp" "$db_file"
+  sed -e 's%^\.:$%\./:%' -e 's%^\([^.].*:\)%\./\1%' \
+       "$db_file_tmp"  > "$db_file"
+  rm -f $db_file_tmp
 done
 tty -s && echo "$progname: Done."
 exit 0

てな感じのダーティーパッチ。取り合えずこれで ls-R が復活した。この問題は、pk をいっぱいため込んでいると気づかなかったかもしれない。

さて、xdvi も動くようになったので、後は選択プリントができるように SeeTeX を入れましょうと "rpm --rebuild" を試みるも敗退。理由は、"varargs.h" でなく "stdarg.h" 仕様だと思ってしまうこと。そこで、CFLAGS から POSIX 指定をはずしてやる必要がある。

        STD_DEFINES = -Dlinux -D__powerpc_ -D_BSD_SOURCE -D_SVIO_SOURCE

くらいにするように SPEC を変更した。

        SeeTeX-2.19J-3.src.rpm
        dviconcat-2.19J-3.ppc.rpm
        dviselect-2.19J-3.ppc.rpm

ができたので ppc.rpm を、"rpm -ivh" する。そこで、xdvi の中から選択プリントを試みるも敗退。だが、dviselect を単独で使うとページが選べるので xdvi の設定の問題と思われる。悩むのは面倒なので、デフォールトで出るように xdvi を作りなおそうか?というわけで結局作り直すことに。といってもただ "rpm --rebuild" しただけ。

        xdvik-20cjp-4.0a.ppc.rpm

とちょっと古いが、元の大きさに戻れるようにパッチを当てた奴なので我慢する。
JRPMのは、一旦シュリンクするとボタンではもとの大きさに戻れない。
 
 

[3-5] Perl-5.005_03jp990503-1a

さて、ここで、latex2html が動かしたくなるので日本語 perl と欲が出てくる。これは、基本的には JRPM の再コンパイルだが、pthread ははずしてある。また、要注意なのは、db1 を使うようにパッチをあてる必要があること。これは英語版の SRPM から抜き出してあてる。と、テストに全てパスするようになる。

        perl-5.005_03jp990503-1a.src.rpm
        perl-5.005_03jp990503-1a.ppc.rpm

ができたので ppc.rpm の方を "rpm -Uvh --oldpackage" する。latex2html-97.1-4 との組み合わせでかなり大きな日本語 TeX の文書が html に化けてくれる。
 

[3-6] Old Tcl/Tk Applications

取り合えず、古い Tcl/Tk でしか動かない TkDesk を使うために古い Tcl/Tk を入れる。pre-R5.ja の jp-tcltk と jp-TkDesk の組み合わせは私の環境ではコアを吐いてしまった。仕方なく再コンパイルで

        jp-tcltk-7.6p2_4.2p2-2b.ppc.rpm
        jp-TkDesk-1.1-2b.ppc.rpm

を作って "rpm -ivh" した。tcltk は以前のようにいくつかテストに落ちるが、segfault することはない。ただし、tcl7.6 は、ENOTSUPP マクロが case 文に2回現れる(Linux では ENOTSUPP = EOPNOTSUPP なので)と怒られる。ならば消してしまう。ついでに

        jp-blt-2.4h-1a.ppc.rpm
        jp-tkmail-4.0beta9-2e.ppc.rpm
        jp-ical-2.2-1c.ppc.rpm

も "rpm --rebuild" して入れておく。
 
 

[4] X 関連のカスタマイズ

[4-1] やっぱり、enlightenment + gnome は PM8115/110 には無理

かっこいいので残念であるが、我がマシンでは AfterStep ですら重すぎるのだ。もう少しましなマシンであれば、/etc/sysconfig/desktop に AnotherLevel と書き、$HOME/.wm_style に AfterStep と書けばよいのだが、それもままならない。仕方なく .Xclients を

#!/bin/bash
#--
#  Set mouse acceleration paramaters
#--
xset m 4 2
#--
#  Set the background color
#--
xsetroot -solid "#185f6a"
#--
#  Start some nice programs
#--
# ical -iconic &
kinput2 -wnn &
tkdesk -fvwm &
#--
#  Start the window manager and wait for it to finish
#--
exec fvwm2

などという情けないものに代える。ファイルマネージャーとしては、使い勝手を言うならば TkDesk がまだまだ一番だと思う。KDE も GNOME もかっこいいファイ ルマネージャーをもっているが、作者自身が実際に使い倒しているという意味において、TkDesk はかゆいところに手が届く。Tcl/Tk なので新機能の追加も容易。 Solaris や HP-UX の CDE もスクリプティングの設計は単純でありつつもオブジェクト指向にできていてカスタマイズしやすいが、デフォールトの設定を見る限り、開発者が自ら使っているとはとうてい思えない。おそらく開発者は、端末と vi あるいは emacs だけで生活している人たちであろう。ただし、設計は良いので、その気になればほとんどのことがマウスだけでできるまでにカスタマイズできる。GNOME や KDE に関しては調査していないが、どうなのだろうか?

ちなみに .fvwm2rc は 2.0.47 で使えていたものがうまく動かない部分(ページャーをボタンに張り付ける部分)があった。

*FvwmButtons(3x1) - whatever Swallow "FvwmPager"  Module FvwmPager 0 2

*FvwmButtons(3x1) - whatever Swallow "FvwmPager" "Module FvwmPager 0 2"

にしなければダメだった。これは、古いバージョンと共立しない。ま、とにかくこれで、X が耐えられるスピードで動くようになった。
 

[4-2] Delete を BackSpace にしておこう

ついでに .Xmodmap もアップル英語版拡張キーボードに合わせて

keycode 59 = BackSpace Delete
keycode 125 = Delete BackSpace

などとしておく。keycode は xev で調べる。このマシンでは必要ないが、PB などのコンソールでは showkey で調べ、/usr/lib/kbd/keymaps/mac/ 以下のマップファイルを変更する。
 
 

[5] 仕事関係のインストール

[5-1] tdr-1.7-1

"rpm --rebuild" で終わり。

[5-2] 大仕事 cernlib

まずは cern よりソースを取ってこなくては。CERNLIB-99 より、昨年 CERN に送った、MkLinux 用のパッチが統合されたので今回の移植は楽なはずである。ただし、glibc2.1 になったことが少し気にかかる(glibc-1.99 はバージョンナンバーからも推察されるように、libc5 よりはずーっと glibc2 に近い。ほとんど 2 というのが 1.99 の気持ちだと推察するが、少し違っていても驚かない)。ま、試さなければ分からない。
今回は、アーカイブを作るときにも PIC FLAG をつけてコンパイルすることを忘れないでおこう。
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life