2003年09月24日
この日と次の日は徹夜で連続作業をしました。長文ご容赦を。
§プロローグ
長かった。本当に永い戦いになってしまった。
誰と戦ってたかって?RedHatLinux9.0とさ。ふぅ。
まず 事の起りを思い出そう。
とにかく このサーバー、marineのtripwireがうまく動作しなくなった
ことが 始まりだった。それで、原因を調べたら HDDが壊れかけてるようだ、
ということになり、そういうことなら HDDを入れ替えると同時に
OSのバージョンも上げようじゃないか、ということになったのだった。
以前は RedHat7.1だったのだけど、今回は最新のRedHat9.0にすることにした。
Red Hat 9.0 Professionalパッケージには DVDによるメディアも付属する
と書いてあったので winマシンから DVD-ROMドライブを取り外して、
Linuxマシンにつけ変えよう。丁度 安い書き込みDVDドライブが売りに出てたから
winマシンには そっちをつけよう。おっと、いまどき HDDは100GB超でも
1万円じゃないか!それなら この120GBのHDDを注文しよう、と
トントン拍子に注文したのであった。
ところが このHDDがなかなか届かない。
DVDドライブも RedHat9.0も とっくに届いているのに、、と
待つことしばし 昨日の午後に届いたとさ。
で、よせばいいのに、夕方からインストールを始めちまったのが
運の尽き、ベンベン♪
§戦いのはじまり
さて、とりあえず ハードウェアの付け変えから始めないと、
何も始まらない。すでに 重要なファイルをwinマシンに バックアップして
あったので、おもむろに marine(Linuxサーバ)を開けて、
その古いHDDを取り出す。そんで 新しいHDDのジャンパーを設定して、
marineに取りつける。
上蓋も 全部はずして 上部のベイに付いている古いCD-ROMドライブも外して、と。
で ここで windowsのマシンを解体(というほどでもないけど)。
こちらも 両側の側面を開けて DVD-ROMドライブを外す。
ジャンパー確認ののち、marineへ装着。
と、ここで 慌ててはいけない。RedHat9.0のインストール手順を
ざっと眺める。ふんふん。一応、ハードウェアのメモをつくっとくか。
ん?このネットワークカードは何だ?刻印が見づらい。。なんて
やっているうちに 時間が経ってしまう。。
さて そろそろインストールしてみるか。
せっかくだし このDVDメディアで やってみよー♪
ということで 最初のインストール。
インストール画面も美しく、いきなりホイールマウスを認識したりして、
気分よく進む。もちろん カスタムインストールを選んで、
パッケージを慎重に選んで、さーインストールしてくれたまへ。ポチッ。
ウィーーーン。ドライブが回る音がして、ファイルがHDDへ転送されていく。
なーんだ、簡単じゃないか。と 30分弱待ったのち、
再起動が始まって、トントン拍子に 進むかにみえたその瞬間。
init : Id "x" respawning too fast: disabled for 5 minutes
というエラー。えっ、なんで?すんなり進んでたじゃん!
§nobody exists
ちくしょー。えーと、どれどれ。
これは inittabのrunlevelの話のようだな。
ようするに Xが起動できなくて 進まないから
作業を5分停止するってことかな。たぶん。
では、なんでXが起動できないんだろ?
何か パッケージが足りないのかな。
Xは起動できなかったが、リターンキーを押すと、
text modeのログインプロンプトが出たので、とりあえず
ログインしてみる。で、startxと打ってみる。
「そんなもん 無い」と言われる。
じゃ、xinitと打ってみる。
「そんなもん 無い」と言われる。
ん?じゃぁ emacs。
「そんなもん 無い」と言われる。
ほえほえ。じゃぁ ls /usr/X11R6/bin と打ってみる。
「そこには なんも無い」と言われる。
§error repeats...
は? んな馬鹿な。。。しばし 考える。
よくわからんが、いきなり DVDメディアでやった私も大人げ無かったかな?
とか 考えつつ じゃぁ CD-ROMでもう一度やってみることに。
同じ手順を馬鹿みたいに繰り返し、
途中 3枚のメディアを入れ替え 40分ほど後。。。
オンナジ事が。。。がーーん。この時点で 夜の10時くらいだったろうか。
もう今日は帰れないな、と思う。
さて、では DVD-ROMドライブでやっちゃだめだったかな?と考える。
また マシンを解体して ドライブを DVDからCD-ROMに入れ替える。
そして 同じ事を繰り返し、40分ほど後。。。
また オンナジ結果。ちょっと悲しくなってきた。が、
気づいたこと。パッケージをHDDに転送途中で 仮想コンソール1に
切り替えて様子をみてみると
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
:
:
:
:
:
というメッセージが 延々と繰り返されていることに気づく。
これは 何か変だぞ??
はてさて、ここで ネットをうろうろしてみる。
すると ほぼ、というか 全く同じことに出くわしている2、3人の
書き込みに出会う。60億分の3、4人。。。(T∧T)泣
§help?where?how?
ここで そういえば RedHat9.0professionalパッケージには
インストールサポートが付いていることに気づく。
そうだ、サポートの人に聞いてみよう!って どうやって聞くんだ?
これが また 分かりにくい。あとになって 考えてみると
よくわかるんだけど、Red Hat Networkサービスと
インストールサポートサービスの説明がごっちゃで 混乱する。
っていうか もう真夜中で 8時間くらいコンピュータと格闘している
人間としては ムショウにイライラしているわけだ。
で professionalパッケージのインストールサポートサービスは
メールと電話で対応してくれるらしいのだけど、
もちろん こんな夜中に電話が繋がるわけもなく、メールを発送する。
。。。が、このやり場のない気持ちを どうすれば いいのか。
さて、ドライブを変えてみても だめだったということは
このCD-ROMに問題があるんじゃないのか?と考え始める。
ここで、そういえば RedHatは 最新distributionも ftpで公開している
ことを思い出す。このCD-ROMがだめだとして、それなら ftpで取ってきて
CD-ROMを焼けばいいじゃん。(ほんとか?)
さて、焼くマシンは、、と。いままで 放置していたwinマシンに目が留まる。
そうそうこっちを先にやるか、とアプリケーションCD-ROMをインストールしよう
とすると、
「このバージョンのwindowsでは このアプリケーションは 動きません」
がーーん。。えーと、、、と、
丁度 家から持ってきていたノートパソコンに目が留まる。
さらに USB接続のCD-Rドライブがあったぞ。
焼くソフトは入ってたっけ?
調べると VAIOに入っている CD-writerは
CDイメージ=ISOファイルに対応してなさげ。ぐぅ。。
えーと こないだ調子悪くなって起動しなくなったwinマシンで
使っていた B's recorder goldのCD-ROMがどこかに、、、と探す。
CD-ROMは見つかったが シリアル番号の書いた紙が見つからない。。。
ぐぁーーーーー。
と この辺りが 一番 キレテいた時間帯だったと思う。
さて 何とか CDのwriterソフトを入れ、3枚ものCD-ROMイメージを
ftp.riken.go.jpから 落として 焼き終わったころには
夜開け前まであと1時間ほどだった。
§go round and get back
よし この焼いたCD-ROMで やってみよう!
と 始めようとしたら 正しくメディアが焼けているかsumチェックが
あるらしい。せっかくだから チェックしてみる、、、が
このチェックが やたらと時間かかるのだ。
っていうか このCD-ROMドライブ 遅すぎ。。。
ということでDVD-ROMドライブに戻す。(何やってんだか。。)
そして メディアも全部チェックして、もう一度 インストール。
#省略して書いたことも含めて いったい何度インストールしただろう。。
。
。
。
そして 30分後、もとの木阿弥だったことに気づく。。。泣泣
§help again.
いい加減、手を尽くしたと思う。
いろいろ ネットを検索して、いろいろ試した。
が、もう どうにもダメだ。knock out寸前である。
と ここで 電話サポートがそろそろ開いてるんじゃないか?と気づく。
よし 電話してみよう。
トゥルルルルル ガチャ。
サポートの相手は 若い女性の方だったように見受けられました。
丁寧に落ち着いて 話を聞いていただき、
以上のことをかいつまんで はなす。
「しばらくお待ち下さい」と 保留音に。
しばしの後、いろいろ話して、彼女に言われたことは
「このような ケースは あなたが初めてです」爆
どうも 彼女の方でも 原因の予測がつかないようだ。
彼女に言われたことは
・professionalパッケージの CD-ROMでも mediaのチェック機能があること。
だから それを試してみてほしいこと。
(万が一 メディアに傷があることもある)
・パッケージの内容をHDDに転送するときが 怪しいので その際、
仮想コンソール3、4を除いて IOエラーが生じてないか見てほしいこと。
の2点だった。とりあえず 新たな手法だったので 試してみることにする。
Disk1を入れて また同じ手順のインストール。。
仮想コンソールを 切り替えて あちこち様子をうかがう。
仮想コンソール4には 特に怪しいところは無い。
仮想コンソール3では
* Core references package efibootmgr which dosen't exist
* Core references package elilo which dosen't exist
というメッセージが目を引くが、パッケージ内容の転送よりも
だいぶ前に出力されているようだ。これは どういうことなんだろうね。
と、仮想コンソール1を眺めていたら 例によって
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
:
:
:
:
:
の嵐。
さらに 彼女が話してくれた メディアのチェックも問題なし。。
どういう事なんだーー?
§and now...
さて、その後 もう何度かインストールをした。
そのとき、
rpmdb: fatal region error detected ; run recovery
rpmdb: fatal region error detected ; run recovery
:
:
:
のエラーをはいたあとで、仮想コンソール2で
cd /sysimage (だったかな)
cd root
less install.log
とみると rpmdb: fatal region error detected ; run recovery という
エラーの原因というか、きっかけとなるパッケージが何なのかが
わかることに気づいた。エラーはopenssh-askpass-gnome_3.5p1_6とかいう
パッケージを入れた直後に どばーーーっと発生しているのである。
で、よく見てみると、ネットで見かけた 私と同じ苦痛を味わった人も
同じopenssh-askpass-gnome_3.5p1_6をきっかけに エラーが発生している
ようだった。。
なんつーかさ、とりあえず rpmdb: fatal region error detected ; run recovery
を吐く前に パッケージインストールが終了すれば
「とりあえず きれいなインストール終了」なわけだ。
じゃぁ なるべくパッケージ少なくして openssh-askpass-gnomeを取り除いて
インストールしてみたら どうだろう??
これが 大成功だった。はじめて きれいにインストールされたRH9.0を
拝むことができた。(XとKDEだけの、最小限の構成だけど)
実に 初めてから18時間。。泣けた。
その後、redhat-config-packagesを使って
恐る恐る すこしづつ パッケージをインストールしてみた。
現在 gnome関係と 例のopenssh-askpass-gnomeだけは避けてあるが、
それ以外は 問題なく インストールされた。
もしかして openssh-askpass-gnomeが何か元凶なのかも。。?
さて、ようやく「インストールだけ」が終わった。。。
24時間もかかってるのに。泣泣泣泣
今日はもう帰ろう。
2003年09月26日
さて とりあえず 何はともあれ キーボードのCapsとControlの入れ替えだ。
これは 過去に書いてある通りにやりました。
作業内容は古い記録をご覧あれ。
つぎに term/bobcat をemacsに読ませるようにして、と。
それから 過去の設定ファイルを転送したいので
ftpを入れて anonymousをdisableにして、起動。
ファイルを転送の後、最低限の.bashrcと.emacsを配置する。
それから 標準のemacsのFEPが eggじゃないようだったので
wnn7と それに付いてくるwnn7たまごを入れる。
実際には 付属のCD-ROMのOMRONのディレクトリに入って
sh ./Install
を実行。適当に答えた後、古いjserverがアンインストールされて、
新しいwnn7と クライアント等がインストールされる。
次に .bashrcに
export XMODIFIERS="@im=_XWNMO"
export LC_ALL=ja_JP.eucJP
export LANG=ja_JP.eucJP
を記述したら terminalで Shift-Spaceで 日本語入力できるようになりました。
さらに .emacsに
;;-------------wnn7たまご
(if (featurep 'xemacs)
(setq load-path (append '("/usr/share/wnn7/elisp/xemacs21")
load-path))
(setq load-path (append '("/usr/share/wnn7/elisp/emacs20")
load-path)))
(global-set-key "\C-\\" 'toggle-input-method)
(load "wnn7egg-leim")
(if (featurep 'xemacs)
(select-input-method "japanese-egg-wnn7")
(set-input-method "japanese-egg-wnn7"))
(set-language-info "Japanese" 'input-method "japanese-egg-wnn7")
を記述して eggを起動して yを何度か答えれば 終り。
さて、さっきから ちょっとしたテキストファイルを読む際に
lessで読むと日本語が文字化けしてて 腹が立つ。
さて、どうしたらいいかと 調べて見ると
export JLESSCHARSET="japanese-euc"
で うまくいった。しめしめ。
つぎは apacheを動かすことにする。
まず /etc/httpd/conf/http.conf を編集。
(本当はRH9.0では 手作業で編集しないのが流儀なのかも)
このとき
AddDefaultCharset none
としておくと htmlファイルのcharsetは各htmlファイルで
<meta content="text/html ; charset=euc-jp">
などと設定するという意味になり
文字化けせずにすむ。
ついでに カウンタCGI(npc.cgi)も復旧。
npc.cgiを呼び出す際に
<img src=hogehoge/npc.cgi/%7Ehammer/hoge/npc.idx?L=index>
というように npc.idxの場所を rootからの絶対パスで指定できるらしい。
これで npc.idxの位置が 前より良くなった。
さて、セキュリティのためにもパッケージの更新があるものは
アップデートしておかないといけない。
RedHat9.0には 自動アップデートアプリが付いているようだが、
とりあえず 大事なものだけ 手動でアップデートしておくことにする。
sendmailやsshd等だ。
一方、先日 インストールで手間取ったように
openssh-askpass-gnomeパッケージをインストールするのは
エラーが出るんじゃないかなぁ、、と思う。
でも まぁ やってみることにした。
その結果が以下だ。
marine:/home/hammer/work# rpm -Uvh openssh-*
Preparing... ########################################### [100%]
1:openssh ########################################### [ 20%]
2:openssh-askpass ########################################### [ 40%]
3:openssh-askpass-gnome ########################################### [ 60%]
rpmdb: page 162: illegal page type or format
rpmdb: PANIC: 無効な引数です
rpmdb: fatal region error detected; run recovery
rpmdb: fatal region error detected; run recovery
rpmdb: fatal region error detected; run recovery
エラー: db4 error(-30982) from dbcursor->c_put: DB_RUNRECOVERY: Fatal error, run database recovery
エラー: error(-30982) storing record /etc/profile.d/ into Dirnames
rpmdb: fatal region error detected; run recovery
エラー: db4 error(-30982) from dbcursor->c_get: DB_RUNRECOVERY: Fatal error, run database recovery
エラー: error(-30982) getting "/usr/libexec/openssh/" records from Dirnames index
rpmdb: fatal region error detected; run recovery
エラー: db4 error(-30982) from dbcursor->c_close: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: fatal region error detected; run recovery
エラー: db4 error(-30982) from db->sync: DB_RUNRECOVERY: Fatal error, run database recovery
ほらね。みたことか。これがインストールできなかった原因さ。
なんかrpmにバグでもあるんじゃないのか?
と思うんだけど、こんなことが起っているのは、私のところだけなのかなぁ?
と 愚痴っててもしかたないので openssh-askpass-gnomeだけは
避けて通ることにする。
さてさて、さっきも書いたように、
RedHat9.0には up2dateという便利なアプリが付いているらしい。
要するに自動アップデータですね。micro softの自動アップデートと違って
使用が無料ではないんですがね。まOS自体は タダで配ってるわけですし、
どこかでお金取らないとRedHatも商売にならないでしょうしね。
はてさて、Professionalパッケージを購入すると、それが 60日使用できるという
ことなので、早速使おうとするがうまくいかない。??
このサービス(RedHatNetworkという)に登録されてないから 使えないよー、
というエラーが出力される。ん?ん?なんで、前に登録したよ?
と おもって RedHatNetworkのwebサイトに行って良く見てみると
前につかってたRedHat7.1について up2date使用権限が与えられていて、
いまつかっているRedHat9.0には 使用権限がついてないじゃないか!
なんとかーーー!
どうしたら、いいんだろう。。。と悩みつつ、サポートに電話しました。(弱!)
サポートのお姉さんは 丁寧にwebサイト上で RedHat7.1の使用権限を停止し、
RedHat9.0に移す方法を教えてくれました。
なんと、webサイト上でプルダウンメニューを選ぶだけだったんですね。。
そんな簡単だったとは。
さて、その後夕方は 修士論文の指導などをしてたら すでに7時半。
そのあとで sendmailの設定にとりかかる。
/etc/mail/sendmail.mcを設定する。
smtp_authを使うことにして、MASQUERADEはかけないことにする。
それから、
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
の行をコメントアウトして、m4でsendmail.cfに変換。
その後 /etc/rc.d/init.d/sendmail restart する。
別サーバから marineにport 25でtelnetして 具合いを試す。
うん、いい感じだ。おけ。
つぎは POPか。と、思ったら大学のネットワークが止まったらしい。。
しかたない、今日はここまでにするかな。
あ、そうそう ネットワークと関係ないプリンタの設定だけやって
帰ることにする。redhat-config-printerを起動して
新規を選択、ローカル接続を指定して
メーカー:canon 機種:LIPS IV を選択。
テストページを印刷。おけ。すげー簡単になったものだ。
2003年09月28日
週末だけど リモートで作業をする。
ほんとは こんなのしちゃだめなんだろうけど。
さて qpopperをAPOPで入れることにする。
まず tgzファイルを取ってくる。(一般ユーザで)
$ wget http://ring.gr.jp/pub/net/mail/qpopper/qpopper4.0.5.tar.gz
つぎに APOP認証用のuserを追加。
# /usr/sbin/adduser pop
passwd pop で popのパスワードも変更する。
さて つぎは configure。つぎのようなオプションをつける。
$ ./configure --enable-specialauth --enable-apop=/etc/pop.auth --enable-popid=pop
このあと makeして、rootになる。
ここで make install しようとしたら /usr/local/man/man8がないと言われた。
調べてみると ほんとに無い。
どうやら RedHatでは /usr/share/man/に manファイルがおいてあるようだ。
しかたなく 手動でinstallする。
makeしたディレクトリの下の man/にある
popauth.8 poppassd.8 popper.8
をgzipして、/usr/share/man/man8/の下に置く。
つぎに makeしたディレクトリの下の popper/にある
popper と popauth というファイルを /usr/sbinに
その後
# chown root /usr/sbin/popper
# chgrp root /usr/sbin/popper
# chown pop /usr/sbin/popauth
# chgrp root /usr/sbin/popauth
をして 最後に
# chmod u+s /usr/sbin/popauth
とする。
その後 rootで
# popauth -init
と /etc/pop.authを初期化して、popauth -user hammer と ユーザーを登録。
さて、つぎはxinetdに qpopperを登録しないといけない。
さらに firewallで 110を通さないと。
まず 前に書いたように
service pop-3
{
disable = no
socket_type =stream
wait = no
user = root
server = /usr/sbin/popper
server_args = -s
port = 110
}
という内容で popperという名前のファイルを
/etc/xinetd.d/につくる。
次に /etc/rc.d/init.d/xinetd restart して設定を読み込ませる。
つぎに /etc/sysconfig/iptablesのなかの
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT
という行を複製して 25を110に。つまり、
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 110 --syn -j ACCEPT
という行を追加。さらに /etc/rc.d/init.d/iptables restart で
firewallも再起動して 110を通すことにする。
telnet localhost 110 で確認して OK!
あ、そうそう。そういえば userディレクトリのcgiが動いてなかった。
httpd.confの
AddHandler cgi-script .cgi
という行をコメントアウトして、
<Directory "/ほげ/ほげ/ほげ/cgi-bin">
Options None
Options ExecCGI
</Directory>
という行を付け足す。これでいいだろう。
2003年09月29日
ほんとは 「しばらく システムを停止します。よろしく」と宣言してから
システムを入れ替えるのが 礼儀だと思うんですが、
MLにそういうことを流すことなく サーバー入れ替え作業に入ってしまいました。
あまりトラフィックのあるMLでもないし、始めは 2日もあれば大ジョブだろう
と思っていたのですが、、、
昨晩、とある方の訃報が入り、MLが止まっているようだが、
なんとか メンバーに連絡できないか?というメールを頂き、、
慌ててMLの復旧作業をしました。汗
ということで 昨晩と今日の作業の記録。
まず fmlをとってくる。パッケージではなく tarボールをとってくる。
ftp://ftp.fml.org/pub/fml
←このあたりにあります。
まず fml管理用アカウントを作って、fml用のディレクトリも作る。
$ su
#/usr/sbin/adduser fml
#makedir /var/spool/ml
#makedir /usr/local/fml
#chown fml /var/spool/ml
#chown fml /usr/local/fml
#exit
とってきたtar.gzファイルを展開して 中に。
$ tar xvzf fml-***-tgz
$ cd fml-***
suになって install。installでできたディレクトリもfmlの物にしておきます。
$ su
#perl makefml install
#chown fml /var/spool/ml/etc
#exit
つぎはsmrshを使うための設定。smrshはsendmailが外部プログラムを
呼び出すときにつかう限定されたシェルで、セキュリティのためのものです。
/home/fml/bin/site_init.ph (このファイルは新規作成) をつくる。
内容は以下の通り:
push(@INC, "/home/fml/bin");
push(@LIBDIR,"/home/fml/bin/module");
push(@LIBDIR,"/home/fml/bin/module/CPAN");
push(@LIBDIR,"/home/fml/bin/module/Japanese");
push(@LIBDIR,"/home/fml/bin/module/fml-devel");
1;
さらに
$ su
# ln -s /home/fml/bin/fml.pl /etc/smrsh/
# ln -s /home/fml/bin/libloadconfig.pl /etc/smrsh/
# ln -s /home/fml/bin/default_config.ph /etc/smrsh/
# ln -s /home/fml/bin/site_init.ph /etc/smrsh/
とします。これで fml自体のインストールは終りのはず。
さて MLをつくる。ユーザーfmlになって
$ /usr/local/fml/makefml newml hoge
あとは /var/spool/ml/etc/aliasesの内容を
/etc/aliasesに加えて、suで newaliasesを実行。
これで MLとして機能するはずなので あとは MLの設定をすればいい。
バックアップしてあるMLの設定の復旧ですが、
backupしてある各MLのディレクトリから
members、members-name、actives、seq、summaryを 新しくつくったMLの
ディレクトリにコピー。さらに backupのMLのディレクトリの下の
spoolの中のファイルを 新しいspoolディレクトリの中に追加。
あとは
$ /usr/local/fml/makefml config hoge
等を実行して 対話型インターフェースで MLの設定をして終り。
これでMLもOK!
・その他 細かいカスタマイズというか 設定というか。
emacsをXで実行すると 日本語の入力が化けてしまう。
これは emacsが xwnmoを使おうとするためで
alias mule='XMODIFIERS=@im=none emacs'
等、xwnmoを使わないようにaliasしておけばいい。
ただ、sylpheedの外部エディタとして emacsを使う時はどうすれば
いいのか わからなかった。そこで、sylpheedの外部エディタ登録は
kterm -geometry =80x40 -e emacs -nw %s
としておいた。これの方が起動が早いし、気分がいい。
lsの出力のcolor設定は まず aliasで、
alias ls='ls -CF --color=auto'
とした後に、dircolorsコマンドの出力結果
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:';
export LS_COLORS
を .bashrcに追加すればいい。
しっかし、sylpheedについてくるメールエディタ、
どう設定しても Ctrl-Mでは 改行できないのか???
腹が立つ。。。それさえクリアできれば 気分いいのだが。
つぎはhomeディレクトリの内容を バックアップからコピーして、
texの動作をチェック。
問題なく動いているようだ。
さて、xdviで表示、、というところで 日本語が化けて 困ったが、
よく調べると redhat8.0から 日本語の表示、印刷 には xdvi,dvipsではなくて、
pxdvi、pdvipsを使うんだそうな。
早速、aliasに登録しておく。
preview、印刷、ともに問題なさそうだ。おけ。
最後に UPS監視プログラムを入れよう。
UPSを購入した際に 付属したプログラムはRedHat7.1対応だったが
webを見に行っても9.0用のものは みあたらない。
とりあえず、7.1用のプログラムのインストールを 試みる。
rpmパッケージで 配布されているので rootでcdromに移動して
# rpm -ivh LSP-R7-1.RPM
インストール後 監視デーモンが立ち上がったようなので、
おもむろに UPSのコンセントを抜いてみる。
ピーピー と言う音とともに、各ウィンドウ上に
あと60秒でシャットダウンするというメッセージが。
だいじょぶみたいだ。
ということで とりあえずこれもインストール終り。
もう作業することは 無いような気がする。
ようやく通常業務か?
2003年09月30日
今日は コンピュータのお世話はしないでおこうと思ったのに、
なんだかんだと 不便なところがでてきて 世話を焼いてしまう。。
とりあえず IPメッセンジャーがないと とにかく不便。
ということで IPメッセンジャーをいれる。
もうめんどうになったので gtkipmsgをソースからコンパイルして入れる。
その際 gnome開発環境関係のパッケージも入れる。
例のrpmdb fatal errorとかいうのが 出ないか ヒヤヒヤしたが、
今回はすんなりインストールできた。
さて、午後から 仕事をしていて 講演のOHPをTeXで書くことにする。
で、作業をするのだが、ハイライト(文章の色付け)が気に入らない。
highlightの中でも最も重要な、TeXの数式モードの色が みにくいのだ!!
ちなみに 私の.Xresources は以下のようになっています。
Emacs.foreground: Black
Emacs.background: LightGray
Emacs.cursorColor: NavyBlue
Emacs.pointerColor: NavyBlue
Emacs.iconName: mule
で、.emacsを見直すことにする。
が、.emacsのfont-lockの設定を見ても どこを直せばいいのか、
いまひとつ分からない。というのも、現在 .emacsには
;;
;; 'if' や 'whileといった予約語
(make-face 'my-keyword-face)
(set-face-foreground 'my-keyword-face "red4")
(setq font-lock-keyword-face 'my-keyword-face)
;;(setq font-lock-keyword-face 'bold)
;;
;; コメント
(make-face 'my-comment-face)
(set-face-foreground 'my-comment-face "royalblue")
(setq font-lock-comment-face 'my-comment-face)
;;
;; 文字列
(make-face 'my-string-face)
(set-face-foreground 'my-string-face "darkgreen")
(setq font-lock-string-face 'my-string-face)
;;
;; 関数名
(make-face 'my-function-face)
(set-face-foreground 'my-function-face "darkmagenta")
(setq font-lock-function-name-face 'my-function-face)
;;
;; 変数名
(make-face 'my-variable-name-face)
(set-face-foreground 'my-variable-name-face "firebrick1")
(setq font-lock-variable-name-face 'my-variable-name-face)
;;(setq font-lock-function-name-face 'default)
;;
;; 'typedef' や 'class'
(make-face 'my-type-face)
(set-face-foreground 'my-type-face "darkorange2")
(setq font-lock-type-face 'my-type-face)
という設定が あるのだけど 数式の色付けは上のどのfaceとも
違うようなのだ、、むきー!
そこで、/usr/share/emacs/21.2/lisp/font-lock.elc を
じーっと眺めて、つぎのような設定を足してみた。
;;
;; doc-face
(make-face 'my-doc-face)
(set-face-foreground 'my-doc-face "red4")
(setq font-lock-doc-face 'my-doc-face)
;;
;; builtin-face
(make-face 'my-builtin-face)
(set-face-foreground 'my-builtin-face "red4")
(setq font-lock-builtin-face 'my-builtin-face)
;;
;; constant-face
(make-face 'my-constant-face)
(set-face-foreground 'my-constant-face "red4")
(setq font-lock-constant-face 'my-constant-face)
;;
;; warning-face
(make-face 'my-warning-face)
(set-face-foreground 'my-warning-face "red4")
(setq font-lock-warning-face 'my-warning-face)
;;
;; reference-face
(make-face 'my-reference-face)
(set-face-foreground 'my-reference-face "red4")
(setq font-lock-reference-face 'my-reference-face)
が、数式の色はみにくいまま。 もうこれ以上
設定するfaceが ないんですけど。。。
で、困った、とにかく いろいろ調べてみた。
lispファイルを眺めるのは 目が疲れる。
くらくらしてきた。。が、頑張って調べてみた。
そして /usr/share/emacs/21.2/lisp/textmodes/tex-mode.elc
を じーーっと眺めて ようやく下の設定にたどり着いた。
;;
;; reference-face
(make-face 'my-tex-math-face)
(set-face-foreground 'my-tex-math-face "SpringGreen4")
(setq tex-math-face 'my-tex-math-face)
これで font-lockのtex-modeで、数式の色を変更できます。
よかった。よかった。(って 仕事から 脱線しまくってるがな)
2003年10月01日
もう、世話をやかないことにしようと思っていたのだけど、
どうにも あちこち ちょこまかと 気になることが出てきたりして。
そういえば pov-rayが入ってなかった。
これは 必要。
http://www.povray.org から tgzファイルをとってきて、
解凍後、installスクリプトで インストール。
今回、xvはやめて eeやeogを使おうと思っていたんだけども、
やっぱ だめ。xvを入れる。やはりsharewareなのね。
http://www.trilon.com/xv/downloads.html
このあたりに rpmパッケージがある。
pov-rayを使い始めたら pov-mode.elが欲しくなる。
http://www.acc.umu.se/~woormie/povray/
このあたりから pov-mode.2.10.tgzを取ってきて
解凍してできたファイルたちを /usr/share/emacs/site-lispへ移動。
その後、.emacsに
;;
;;pov-mode
;;
(autoload 'pov-mode "pov-mode.el" "PoVray scene file mode" t)
(setq auto-mode-alist
(append '(("\\.pov$" . pov-mode)
("\\.inc$" . pov-mode)
) auto-mode-alist))
(setq pov-run-default "+i %s +D +FT")
(setq font-lock-background-mode 'light)
を付け足して、終了。これで おっけー。
と おもったら 何か変なことに。
というのも、povファイルを開いていて たとえば
// かいてんします
と打ちたいのに、日本語モードにしても、なぜか "k"、"d"、"e"の
3つのキーを日本語入力として受け入れてくれず、上の入力だったら
// kあいてんします
となってしまう。なぜ? いろいろやってみると、povファイル以外は
そういうことは起っていない。。ピーン! いまいれた pov-mode.elが
何かしているに違いない。そこで pov-mode.elの中を じーっと見てみると
当該個所を発見。この機能を使わなさそうなので、
つぎのようにコメントアウトしました。
;;
;; this part was commented out by hammer 03.10.01
;;
;; Hack to redindent end/else/break
;;(if pov-autoindent-endblocks
;; (progn
;; (define-key pov-mode-map "e" 'pov-autoindent-endblock)
;; (define-key pov-mode-map "k" 'pov-autoindent-endblock)
;; (define-key pov-mode-map "d" 'pov-autoindent-endblock)))
;;
2003年10月06日
dviからpdfにする必要があって、なにかコンバートソフト入ってるかな?
と さがすとdvipdfというコマンドが。
これを実行するも 以下のように うまくいかず。
marine:~/tex/etc$ dvipdf hoge
dvips: ! Bad VF file min10.vf: character code out of range
Error: /typecheck in --closefile--
Operand stack:
--nostringval-- ()
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval-- --nostringval--
--nostringval-- false 1 %stopped_push 1 3 %oparray_pop
--nostringval-- --nostringval--
Dictionary stack:
--dict:1051/1123(ro)(G)-- --dict:0/20(G)-- --dict:88/200(L)--
Current allocation mode is local
GNU Ghostscript 7.05: Unrecoverable error, exit code 1
よく分からないのだけども、しょうがないので、
前に入れたdvipdfmをまた入れてみた。ほんと、メモっておくのは重要だな。
こちらのぺーじから 前回同様rpmパッケージをもらってきてインストール。
問題なく動きました。
2003年10月10日
そうそう、ここには書き忘れてましたが、
当然 tripwireを動かしてます。
前に書いたように
RedHatが提供しているtripwireのページを参考にインストールしました。
ここ、大変わかりやすく解説してくれているのですが、
自分のために以下に種々の作業をメモします。
/etc/tripwire/twcfg.txtと /etc/tripwire/twpol.txtを編集。
/etc/tripwire/twinstall.shを実行して パスフレーズを設定。
/usr/sbin/tripwire --init
/usr/sbin/tripwire --check
/usr/sbin/twprint -m r --twrfile /var/lib/tripwire/report/ほげ.twr
/usr/sbin/tripwire --update --twrfile /var/lib/tripwire/report/ほげ.twr
実行すると エディタが立ち上がるが、
何かをインストールした後とか、許容されるエラーだけならば、
ファイルをセーブして エディタを終了する。
許容できないエラーがあるときは そのエラーの最初のXを取る。
2004年04月07日
やぁ、ここに書くの久しぶりだな。
というのも RedHat9.0も安定して動いていて、
ときどき セキュリティー上必要なアップデートとかもあるのだけども、
RedHatNetworkが自動的にお知らせしてくれて、ボタンをクリックすれば
自動的に最新にしてくれるので 何も調べたり、考えたりせんでも、
半自動的に 最新状態だったのだ。
あー、楽珍であった。そう、この極楽状態も 今月いっぱいだ。。
RedHatLinuxは 今月の30日で 終了してしまうからである。
ぐは。そのあとどうしよう、、でも まだ何も考えていないのであった。
はてさて、今日は 授業の準備をしていたわけなのですが、
日本語のTeXファイルをemacsで書いていると いらいらすることがある。
というのも 日本語入力時に"「"を入力しようとすると
勝手に "["にされしまうのである。(当方、英語キーボードです)
前から 気になってはいたのだけども、
日本語TeXファイルを書く機会が あまり無かったので 放置していた。
が、今日はたくさん"「"を入力する機会があってですな、もう ムキーと
なってしまったわけですよ。ということで 改善に乗り出す。(現実逃避ともいう)
ちなみに "「"→"[" という現象以外にも、
"{"→"{"や、"$"→"$"もあるのだが、こっちは気にならない。
というより このままの方が返って気持ちいいくらいである。
さて、前に pov-modeで ほぼ同様の事態を
体験しているので きっとtex-modeのリスプファイルのなかに該当個所があって
そこをコメントアウトしちゃえば いいんでないの?と思っていたが
なんと tex-mode.elcはあっても tex-mode.el がない。
ぐは。
バイトコードか。んー、、、と いろいろ調べて
バイトコードをいじることに。まぁ バイトコードとはいっても、
emacsで見てみれば分かるけども アスキーコードの部分がほとんど。
それっぽいところは 以下の個所である。
define-key "\"" tex-insert-quote "(" skeleton-pair-insert-maybe "{" "[" "$" "\n" tex-terminate-paragraph
"
これを 以下のように書き換えたら
define-key "\"" tex-insert-quote "(" skeleton-pair-insert-maybe "{" "$" "\n" tex-terminate-paragraph
"
emacsでtexファイルを読み込むときにエラーがでてしまった。ぐぐ。
そこで、次のようにしてみたら
define-key "\"" tex-insert-quote "(" skeleton-pair-insert-maybe "{" "$" "$" "\n" tex-terminate-paragraph
"
うまくいった。めでたし、めでたし。(強引な感じもするが。。)
ということで 本来の仕事に戻ろう。
2004年11月05日
やや、気付いたらまた半年以上経ってましたね。
まぁ、いいや。
今日は ps2imgなるコマンドを入れました。
こちらで公開されています。東北学院大学の熊谷研究室というところですね。
どういうものかといいますと、もともとはpostscriptファイルを標準的な画像形式に
変換するためのツールだったようですが、拡張として何と、
tex形式の数式コマンドをコマンドラインから画像に変換できるようになっているのです。
確かに言われてみれば 原理的には
変換すればいいのだから いくつかのコマンドを組み合わせたスクリプトでできるわけですが、
それが1コマンドで 出来るのはとっても便利ですばらしいのです。
インストールですが、上記のサイトから
ps2imgというperlスクリプトと psimglib.plというこれまたperlのファイルを取ってきます。
まず、psimglib.plを適当なperlのlibディレクトリにいれます。
ps2imgはパスの通ったところに入れます。
つぎにps2imgに対して、 {ps|tex|eqn}2{gif|png|bmp} といった名前で
シンボリックリンクを張ります。
このシンボリックリンクから起動することにより名前の表す各種の働きをするわけです。
#tex2bmp なら texコマンドから bmpファイルへ。
このあと、dvipsがうまくうごいてくれなくて
ちょっとだけ苦労しました。
うちのマシンに入っているdvipsは
dvips <ファイル名>
と呼び出すと そのファイルをdviファイルと考え、プリンタで印刷しようとします。
実際には ps2imgの内部では ほげほげ.dviを ほげほげ.psに変換するように
働いて欲しいのですが、そのためには
dvips <ファイル名> -o
というふうに呼び出す必要があります。そのためpsimglib.plの冒頭の
$CMD_dvips="dvips"; # Redhat 6
の行では うまく設定できないわけです。そこで、直接 342行目辺りの
$cmd="(cd $tmpdir; $CMD_platex $temp; $CMD_dvips $temp".".dvi; $CMD_ps2epsi $temp".".ps)";
を
$cmd="(cd $tmpdir; $CMD_platex $temp; $CMD_dvips $temp".".dvi -o; $CMD_ps2epsi $temp".".ps)";
と変更したらうまく動きました。なかなか便利なコマンドです。
使用方法は 例えば
eqn2png "y=f(x)" tp.png 2
という具合い。最後の2は画像の倍率。1だと 荒いです。
2005年03月09日
あい、すみません。RedHat9.0のサポートが終わってから というものの、
長いことさぼっていました。
今日、JPCERT/CCからの「openssh脆弱性を使ったシステムへの侵入に関する注意喚起」
というメールを読んで 急に心配になって opensshをバージョンアップしました。
以前はもうRedHatのサービスに 「おんぶにだっこ」だったので、
久しぶりにやると何だかすっかりわすれていましたが、勉強になりました。
以下、作業メモ。
opensshの最新バージョンは3.9p1-1ということである。
RPMファイルを探してみるが、RedHat用のものはもうない。(T−T)
仕方がないので SRPMを取ってきて何とかすることにする。
wget ftp://hogehoge/hogehoge/openssh-3.9p1-1.src.rpm
始めよく分かっていなくて適当なことをしたらrpmデータベースが壊れて
しまったので、(T−T)これを直すことに。
rpm -rebuilddb
と実行するが、これまたエラー。うーん、こまった。
そこでまた調べてみたら/var/lib/rpm/__db.001〜003の3つのファイルを
消去(というか別の場所へ移動)してから、再度rpm --rebuilddbをせよ
とのこと。その通りにしてみても、またしても次のようにエラー。(T−T)
エラー: db4 error(16) from dbenv->remove: デバイスもしくはリソースがビジー状態です
そこでまたまた調べてみたら これはRedHat9.0で常に起こる現象のようで、
無視してもいいらしい。そうなの?
ようやく本作業に戻る。まず、取ってきたSRPMファイルをインストールする
rpm -ivh openssh-3.9p1-1.src.rpm
すると /usr/src/redhat/の下に適当にファイルがばらまかれる。このうちの
/usr/src/redhat/SPECS/openssh.spec が rpmパッケージ作成のための設計図。
/usr/src/redhat/SOURCES/openssh-3.9p1.tar.gz が 実際のソースファイル。
つぎに設計図から rpmパッケージを作りたいわけだが、どうもこのままでは
Fedra Core用のパッケージになってしまうようである。RedHat用にするために、
いったん、openssh-3.9p1.tar.gzを解凍し、そのなかのcontribディレクトリに
あるRedHat用のopenssh.specと取替える。
cd /usr/src/redhat/SOURCES/
tar xvzf openssh-3.9p1.tar.gz
cd openssh-3.9p1/contrib/redhat
mv ../../../../SPECS/openssh.spec mv ../../../../SPECS/openssh.spec.fc
mv openssh.spec ../../../../SPECS/
cd ../../..
rpm -rf openssh-3.9p1
さて、これでrpmパッケージを作る準備完了。
cd /usr/src/redhat/SPECS
rpm -ba openssh.spec
すると どかどかーーっとパッケージが作られて、/usr/src/redhat/RPMSに
格納されるはずだったが、エラーがでて、openssh.specの所有者が
おかしいと言われた。ふむ、しらべてみると確かにへんなuser所有に
なっている。tarで展開したところから取ってきただけだからだ。
chown, chgrpで rootの所有にして 再度 rpm -ba openssh.spec する。
あとは パッケージをインストールするだけ。
cd /usr/src/redhat/RPMS
rpm -ivh openssh*.rpm
そして sshを再起動。
cd /etc/rc.d/init.d
./sshd restart
ところで、ちょっとシステムのlogをみてみたら、、
どしぇーーー、ちょくちょく sshdへアクセスを試みる海外のクラッカーが
きてるじゃないですか。。。。汗汗汗
心を入れ替えて セキュリティ感覚を見直すことにします。
そうそう、
/etc/ssh/sshd_config を編集して
PermitRootLogin no
としておくのも忘れずに。これで rootはsshでログインできなくなります。
どうしてもリモートでroot作業をしたいのなら、一般ユーザーでログインしてから
suしましょう。
2005年06月21日
論文や研究発表のabstractを書くときは 最近 amsartというクラスファイルを
使っています。いつも論文を書くときは英語なので、特に困ったことは
無かったのですが、ちょっと日本語で書きたくなって、その場合 amsartでは
不都合が起きるような気がします。多分。やってないけど。
というわけで、何かいいものないかな?と探してみたら
vectorで amsart.clsの日本語化、jamsart.clsというのがありました。
早速、downloadしてみます。解説はDOS用に書かれているので、
UNIXでは以下のようにします。
まず lha x jamscls.lzh で解凍。
つぎに platex jamscls.ins を実行すると3つのclsファイルが出来ます。
つぎに platex jamscls.dtx を実行すると jamscls.dviという解説文書ができます。
これらを ..../texmf/ptex/platex/jamsart/ というディレクトリの下に配置しました。
そのあと mktexlsrを実行して、texmfの下のls-Rファイルを更新しておきます。
これでインストールは完了したはず。
ところが、この後 クラスファイルとしてjamsartを指定した適当なtexファイルを
コンパイルしようとしたら 失敗しました。なるほど、そうか この日本語化された
クラスファイルはShift-JISで書かれているのですね。
そこで、インストールしたクラスファイルのあるディレクトリに行って、
mv jamsart.cls jamsart_.cls; nkf --unix jamsart_.cls > jamsart.cls
mv jamsboo.cls jamsboo_.cls; nkf --unix jamsboo_.cls > jamsboo.cls
mv jamspro.cls jamspro_.cls; nkf --unix jamspro_.cls > jamspro.cls
と実行したらうまく行きました。使用感は まだ使い込んでないのでよく
分かりませんが、とりあえず今回の仕事で使ってみるつもりです。
HomePageにもどる。