«前の日記(2011-08-14(Sun)) 最新 次の日記(2011-08-16(Tue))» 編集

[email protected]



2011-08-15(Mon) [長年日記]

_ tDiaryをマルチユーザのrvmで動かした

tDiary 3.1.0リリースおめでとうございます!

遅ればせながら、この日記をtDiary 3.1.0にアップデートしたのと一緒に、rubyをrvmのものにしたのでメモ。

環境

動作の確認したのはubuntu 10.04 LTS。

rvm

準備

rvmをインストールする準備。

apt-get install git-core curl

インストール

今回はマルチユーザでrvmを使いたいので、root権限でrvmをインストール。

% sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

一般ユーザでrubyの管理をしたいので、自分をrvmグループに入れておく。

% sudo usermod -a -G rvm USERID

/etc/zsh/zprofile

rvmは/usr/local/rvmにインストールされ、すべてのユーザがrvmを使えるようにするスクリプト、/etc/profile.d/rvm.shがインストールされるけど、zshでは/etc/profile.d/*は読んでくれないので、/etc/profileを参考に、/etc/zsh/zprofileに次の内容を追記。

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

ruby

インストール

今まで省メモリを狙って、REEにしていたんだけど、「続:rvmからREEのような省メモリのRuby1.9.2をインストール - さかなチキンぱん。」で、ruby-1.9.2に省メモリ機能を追加するパッチがあることを知ったので、エントリを参考に、gcパッチつきのruby-1.9.2-p290をインストール。

% cd work
% curl https://raw.github.com/gist/856296/a19ac26fe7412ef398bd9f57e61f06fef1f186fe/patch-1.9.2-gc.patch > gc.patch
% curl https://raw.github.com/gist/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch > load-p290.patch
% rvm install 1.9.2-p290 -C --with-zlib-dir=$rvm_path/usr \
--with-openssl-dir=$rvm_path/usr \
--with-readline-dir=$rvm_path/usr \
--with-iconv-dir=$rvm_path/usr \
--patch load-p290.patch,gc.patch -n gc
/usr/local/rvm/hooks/after_use

rubyのインストールに成功したら、/usr/local/rvm/hooks/after_useに次の内容を追記。エントリをそのままコピペしただけなので、未検証w

case "$rvm_ruby_string" in
  *-gc*)
    export RUBY_GC_MALLOC_LIMIT=40000000
    export RUBY_HEAP_MIN_SLOTS=1000000
    export RUBY_FREE_MIN=100000
  ;;
  *)
    unset RUBY_HEAP_MIN_SLOTS RUBY_HEAP_SLOTS_INCREMENT RUBY_HEAP_SLOTS_GROWTH_FACTOR RUBY_GC_MALLOC_LIMIT  RUBY_HEAP_FREE_MIN RUBY_FREE_MIN
  ;;
  *)
esac
gem

tDiaryはfcgiで動かすので、gemをインストール。

% rvm use ruby-1.9.2-p290-gc
% gem install fcgi

tDiary

tDiaryのindex.fcgi、index.rb、update.rbのshebangをこんな感じに書き直すだけ。楽チン!

#!/usr/local/rvm/bin/ruby-1.9.2-p290-gc

課題

gemsetを作らなかったけど、本当はこんな感じでtDiary用のgemsetとwrapperも作成したかった。

% rvm gemset create tdiary
% rvm gemset use tdiary
% gem install fcgi
% rvm wrapper ruby-1.9.2-p290-gc tdiary

ただ、こうすると、なぜかfcgiが動かなかったので断念。cgiだけだったら、shebangを

#!/usr/local/rvm/bin/tdiary_ruby

で大丈夫だった。なんでfcgiだとダメなのかを調べるのが今後の課題。

参考にさせていただいたところ

Tags: tDiary Ruby

_ C・A・スミスのヒュペルボレオスとアトランティスを舞台にした古代史もの短編集。良くも悪くも訳者・大瀧節が炸裂だ──『ヒュペルボレオス極北神怪譚』書評

ヒュペルボレオス極北神怪譚 (創元推理文庫)(クラーク・アシュトン・スミス/大瀧 啓裕)

クラーク・アシュトン・スミスによる短編集である。C・A・スミスといえば、クトゥルフもので有名だが、本書にはその中でも、ヒュペルボレオスとアトランティスを舞台にした古代ものを中心に23編が収められている。

自分でも驚くほど、読了するのに時間がかかってしまった。話自体は傑作というほどものはなかったが、それほど退屈というものもなく、平均的に面白いものばかりだったのだが、大瀧啓裕の大仰な訳がどうも苦手で、読書スピードが一向に上がらなかった。

言うまでもなく、ラヴクラフトやクトゥルフ神話を日本で広めた大瀧啓裕の貢献は間違いのないものだが、やたらと難解が語彙が使われている訳文とは、どうも相性がよくない。個人的には、もうちょっと気楽に読める文章にしてもらいたいなーと思ったりするのだが、一方で「暗澹たる」や「冒涜的」、「名状し難き」を散りばめた大瀧訳のラヴクラフトの文章が、ネタのテンプレートになっていることも考えると、なかなか難しいところではある。

大幅に話がずれた。

さて、本書の感想である。先に書いた通り、ホームラン級のものはないが、どれもヒット級で甲乙つけがたい面白さだ。ホラーはもちろん、ファンタジー色の強い作品もあれば、現代ものもある。どこかユーモラスな作品も多いのも特徴だ。そんな訳で、全23編の中から面白い作品を選ぶのはなかなか難しいのだが、敢えて5作品ほどピックアップしてみたい。

まずは「土星への扉」。館を女神イホウンデーの司祭たちに強襲され、土星へと逃げた魔術師エイボンと、それを追った司祭モルギによる土星の旅を巡る一編だ。実は、青心社の〈クトゥルー〉シリーズで20年近く前に読んだ記憶があるが、今読んで2人の珍道中は楽しい。エイボンといえば、魔導書『エイボンの書』の書き手として、クトゥルフ神話ではつとに有名だが、実はいいヤツなんですなw

次は「七つの呪い」。魔術師の儀式を邪魔したために呪いをかけられ、生贄となるべく、地下世界の旧支配者の元へ行くことになった男の運命を描いた一作。旧支配者の間をたらい回しにされる主人公がおかしい。いわば、C・A・スミス版もしくはクトゥルフ神話版・地獄巡りといっていい作品だ。

三つめは、元死刑執行人がヒュペルボレオスの首都、コムモリオムが放棄されることになった事件の顛末を回顧する「アラムマウスの遺書」。こちらはファンタジー+ホラーもの。怖さはほとんどないが、怪物の暴れっぷりと、主人公が死刑執行人という意外性がうまく合わさった良作である。

四つめは「ウッボ=サトゥラ」。ウボサスラとも呼ばれる旧支配者を扱った一編。作品的にはそれほど特筆するべき点はないのだが、実は前々から読みたいと思いつつ機会がなく、今回初めて読むことができたので、完全に個人的な思いでランキングに入れておく。実は現代ものだったんですな(といっても1930年代だけど)。関係ないですが、ウッボ=サトゥラは、「七つの呪い」に登場するアブホスと重なりますね。

そして、五つ目は「三十九の飾帯盗み」。厳重に警備された神殿に潜入して、巫女たちが身に着けている黄金と宝石による飾帯を盗み出すことにした泥棒たちを描いた一作。クトゥルフ神話的な要素はほとんどないが、ルパンIII世的な面白さがあった。「詰めが甘すぎるだろ」と言いたくなるのは私一人ではないはず。

解説では、訳者が各話の歴史的な順番を考察している。矛盾した記述が多いので、たぶん、スミス自体もそんなに気にはしていなかったように思うのだが、その努力には頭が下がる。ちなみに、本書に収められた作品の神名表記の改訂については「適当読みを好む人は適宜読みかえていただきたい」と、あいかわらずの大瀧節が炸裂していますw

Tags: CofC 書評