2009-02-07(土) [長年日記]
■ Debian lenny導入メモ(on VMware Player)
マジ個人的な作業メモ。なんか、この日記を始めた頃のことを思い出したよ。当時はKondaraだったが。
さすがにインストールでつまづく時代ではないので省略。パッケージのセットは、「Webサーバ」と「ファイルサーバ」を選択。インストール直後、まだVMwareのコンソールからしか入れない段階で最低必要なパッケージを導入:
# aptitude install sudo zsh vim subversion ssh screen keychain ruby
rubyは最新の1.8.7-p72ですな。1.9.1はあとで野良ビルドする。
sudoの設定。visudoして以下を追加:
sho ALL=(ALL) NOPASSWD: ALL
sambaをセットアップして、sshの鍵をコピーするための穴のあける。
# smbpasswd -a sho # vi /etc/samba/smb.conf ([homes]のread onlyを「no」にする。ファイルのパーミッションは775に)
sshを設定。Windows側の公開鍵を、samba経由で~/.ssh/authorized_keysへ。パーミッションを適切に設定する。
Windows側の/etc/hostsに192.168.43.128を追加。これはDHCPらしいので、あとで固定に変更していいかも。 Poderosaからログインできたら、コンソールは不要なのでTrayIt!あたりで目立たなくしてしまってよい。
あとは.screenrcにUTF-8関連の設定を追加。
defencoding utf-8 encoding utf-8 utf-8 cjkwidth on
■ lenny上のruby 1.9.1のビルドでparse.cのコンパイルが固まる
続いてruby 1.9.1を野良ビルド。そもそもこれが目的である。まずは必要なパッケージを導入。
% sudo aptitude install gcc make libreadline-dev zlib1g-dev bison
続いてruby 1.9.1を持ってきてビルド。
% wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.9.1-p0.tar.gz % tar zxf ruby-1.9.1-p0.tar.gz % cd ruby-1.9.1-p0 % ./configure --prefix=/home/sho --program-suffix=19 && make
あとは待ってればいい……はずだったのに、待てど暮らせど終わらない。parse.cのコンパイルでえらい時間がかかっている。メモリの割り当てが足らないのかと思い、VMwareの設定を128→256MBにしてみたがダメ。
などと嘆いていたら、Twitterでヒントをもらった。詳細は1.9.1のビルドがparse.cのコンパイルで詰まっていた件。なぜか-O2ではダメらしい。先週、職場のマシンに入れたVMwareでは問題なかったのに、なんで???
まぁいいや、これで通るようになった(丸写しすぎ)。
% optflags="-O3 -pipe" ./configure --prefix=/home/sho --program-suffix=19 && make
まだmake test-allが最後まで走らないけど、追ってなんとかする。
■ screenとUTF-8の相性をなんとかする
さて、先日書いたUTF-8環境でscreenがおかしい件、パッケージを作り直せばいいというすばらしい情報をもらったけど……ハードル高いなぁ!
Kondara時代はrpmを作り直すなんて日常茶飯事だったけど、debianになってから自力でdeb作ったことなんてないし。とりあえず、見よう見まねでやってみた作業記録を試行錯誤の部分を削って書いておく。というか、おまじないだらけで、書いておかないと二度と同じことができない(笑)。
まずはパッケージ再作成に必要なパッケージを導入。deb一般だけでなく、screenのビルドに必要なものも含む:
% sudo aptitude install pentium-builder dpkg-dev fakeroot libncursesw5-dev libpam0g-dev debhelper dpatch
ソースパッケージを取得:
% mkdir screen % cd screen % apt-get source screen
あと、教えてもらったパッチを取得して置いておく(patch-cjkwidth-cvs-2006052001)。
Debianのパッチはdiffじゃなくてdpatchというもので管理されてるそうなので、dpatch用のパッチを作成しなくてはならない。持ってきたdiffを元にして作成する:
% cp -a screen-4.0.3 screen-4.0.3.orig % cd screen-4.0.3 % patch < ../patch-cjkwidth-cvs-2006052001 % cd .. % diff -Nru screen-4.0.3.orig screen-4.0.3 > cjkwidth.diff % mv screen-4.0.3.orig screen-4.0.3 % cd screen-4.0.3/debian/patches % dpatch patch-template -p 60cjkwidth "support cjkwidth" < ../../../cjkwidth.diff > 60cjkwidth.dpatch
ようするに、debian/patchの下に、60cjkwidth.dpatchを作成する手順である。60というのはdebian/patchesの下にある複数のパッチの最後が50~だったので。
同じdebian/patchesにある00listをエディタで開き、「40cjk_eastasian」の行を削り、代わりに「60cjkwidth」を追加する。これでcjkまわりのパッチが入れ替わったパッケージが作れる。
じゃあ作ってみましょう。
% cd ../.. % dpkg-buildpackage -rfakeroot -uc -b
これで上のディレクトリにdebファイルができてるはず。本来ならパッケージ名とかも変えるべき。インストールしておわり。
% sudo dpkg -i screen_4.0.3-11_i386.deb
で、結果としてどうなったかというと、改善したけどまだダメ~というところ。こないだ書いた、w3mのステータス行の問題はまったく改善されていないが、表示はよくなった部分もある。特にvimでのトラブルはほとんどなくなったので、何か書くのに困ることはなさそう。
うーん、w3m捨てちまおうかなー。
2009-02-06(金) [長年日記]
■ ruby 1.9.1で$SAFE問題が直ってないのはおれのせいだよなぁ。
あぅぅ、ごめんなさい。
先週書いた$SAFEの件(実際にはruby-devでも話題にしていた)が直らないままruby 1.9.1が出てしまって腐っていたんだけど、うささんの日記を読んで「うわー、やっぱおれがちゃんと行動していればなんとかなったのかもー!」と頭を抱えているところ。
いやまぁ、あのあとすぐに(自称)インフルエンザにかかって、回復を待ってる間にリリースされちゃったので、タイミング的にはどうしようもなかったんだが、せめて問題が発覚したあとすぐにredmineに入れておけばなぁ。あー、ムカつく!(自分に)
ちなみに今日、ZnZさんがチケットを発行してくれているので、何か議論が進むとすればそっちベースになると思う。あ、でもすでにTrunkには何か手が入っているという話もあるので、こっちも見てみないと。
……というわけで、開発環境の整備を急がなくては。screenのUTF-8問題に振り回されてる場合じゃないよなー。
2009-02-05(木) [長年日記]
■ Debian lennyに移行中
ruby 1.9.1が出てしまったので(結局$SAFE問題が決着せず、tDiaryは動きませんでしたorz)、開発環境もいいかげん新しくしないと色々差し支えるので、まずはLinuxから刷新することに。
なんといっても骨董品なのがメイン開発マシンであるLet'snote上のcoLinux 0.6。これがなんとDebian sargeなので、一気に最新にしようと思った。で、coLinuxを0.7に、カーネルを2.6系にして、etchにアップデート……までは成功したのだが、なぜかネットにつながらない。今までどおりTAPを使ってNATにしたいだけなのに!
「ムキー」となったのでそのまま放置して(ぉぃ)、続いて職場。こっちもsargeが生き残っているので、もうcoLinuxはやめてVMware Playerに変更。lennyのRC2を持ってきて、こちらはスムーズに導入できた。
とはいえ、こんどこそ真面目にUTF-8環境にしようと思ったら(以前etch導入時にはくじけた)、screen + w3mの表示が乱れて使い物にならない。ステータス行の文字幅計算がおかくて、画面の右端からいろいろはみ出てしまうのだ。図のように、w3mのステータスバーの左端、「↑↓」の文字幅が、UTF-8だと明らかに(間違って)広く計算されている。ちなみにlenny上でもEUC-JPにすると正しく表示される。
うーむ、これ以外はなんとかなりそうなんだけどなー(と思ったらvimも似たような状況があるな。やっぱ犯人はscreenか)。
と、心が折れそうになってきたので今日はここまで。こういう苦労をしていると、「Macにしたら?」という悪魔のささやきが聞こえてきそうだ(けど負けない)。
◆ densuke [元コメントにあったように「かなりマシ」というレベルなんですよね。 個人的にはこれと http://debian.fa..]
◆ ただただし [うっ、うちのw3mには「ある種のUnicode文字を全角にする」なんて設定がない(笑)。なんかおかしいな……]
◆ ay [「ある種の~」は http://d.hatena.ne.jp/macks/20061001 が参考になると思います。..]
◆ ただただし [おー、ありがとうございます! パッチは試してみたいと思います。ちょっといま時間がない……。]