2008/07/25
環境設定メモ
サブマシン(Athron 64X2, socket 939)のオンボードGPUがしばらく前に壊れてしまった。 ビデオカードだけ挿そうにも、マザーボードの挿し口はPCIE、 手持ちのビデオカードはAGPのやつしかない。 で、置き換えを検討していたのだが、 新しめのマザボはどれもsocket AM2でDDR2になってしまっている。 どうせCPUとメモリまで総取っ替えするなら、もう6年使ってるメインマシンの方を変えたい。 ということで中身総取っ替え計画発動。メインマシンをCore2 Quad / DDR2 にして、 サブマシン用には壊れたマザボと同世代のやつ(ただしオンボードGPU無し、AGP、DDR)を 購入、メインマシンのビデオカードを流用することにした。サブのCPUとメモリも流用。
メインの新しいボードはSATAなので、HDDはIDE-SATAコンバータを介して接続。 さて、grubから/bootにあるカーネルを読むまではいいんだがlogical volumeが 見つけられないと申す(元のシステムはFedora8/i386)。Ubuntu 64のインストールCDで 立ち上げたらちゃんとlogical volumeも見えてマウントできるのに。もう面倒なので そのままUbuntuをインストールしてしまうことにする。
Ubuntu 7.10 x86_64 をCDからインストール。だいたいスムースに進む。 ただ、nvidiaのドライバがうまく動かないのと、オンボードether (Realtek 8111c) が認識されるにもかかわらずパケットが出てかない。
Update managerから8.04へとアップグレード。 localedefで刺さる問題に引っかかる。killall locale-genでインストールを通してから 古いカーネルでリブートしてdpkg --configure -aでOK。 8.04ではnvidiaドライバもオンボードetherもout of boxで使えた。
iptablesの設定がデフォルトでは何にも無いのだが、クライアント用途だからかな。 設定手書きも面倒くさいのでFirestarterを入れた。
XEmacsでトラブル。日本語を表示しようとすると落ちる。ぐぐるとx86_64でしばしば 見られる症状のようだが、解決法が見つからない。emacsに生活の大部分を依存している 身としてはemacsで日本語が使えないと話にならないので、たぶん10年以上慣れ親しんだ XEmacsから決別してGNU Emacsに乗り換えることにする。
んでemacs-snapshot (GNU Emacs 23.0.60.1)を入れてみたところ、mew (5.2) でメールを フェッチする際にArgument out of boundでエラーになることがある。 この問題っぽい。 原因となったasetの仕様については こちら。 文字列にunibyte stringとmultibyte stringがあって、unibyte stringに asetでASCIIレンジ外の文字をセットしようとするとout of boundエラーになると。 (こういう、ascii stringとそれ以外を区別することのあまりの煩わしさがGaucheを 作ることになった強い動機なのであった)。 この問題はmewのMLのスレッドを見るとより新しいemacsのHEADでは直っているっぽいが、 emacsをビルドするのも面倒なのでmewの方をいじって誤魔化した。
*** mew-header.el.orig Fri Jul 25 11:26:36 2008 --- mew-header.el Fri Jul 25 11:25:45 2008 *************** *** 276,282 **** (setq str (string-as-unibyte str))) ;; A bug of Emacs 20.7 (let* ((i 0) (len (length str)) (par-cnt 0) (tmp-cnt 0) (sep-cnt 0) ! (tmp (make-string len ?x)) c ret) (catch 'max (while (< i len) --- 276,283 ---- (setq str (string-as-unibyte str))) ;; A bug of Emacs 20.7 (let* ((i 0) (len (length str)) (par-cnt 0) (tmp-cnt 0) (sep-cnt 0) ! ;(tmp (make-string len ?x)) ! (tmp (make-string len ?\x3030)) c ret) (catch 'max (while (< i len)
バッファの文字列を無理やりmutibyte stringで作るだけ。
文字列をmutableなarrayと考えることについても大いに問題ありと思うが、 さすがにemacsくらい巨大なソフトになると簡単には変えられないだろうなあ。
Tag: PC