トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2002-07-11(木) 7671歩 [長年日記]

tDiary: Ruby 1.7→1.6?

最近、自前のサイトを閉じるのでtDiary.Netに引っ越して来た人がいて、過去の日記も引っ越すためにデータファイルを送ってもらったのだが。何も考えずに@data_pathに放り込んだらエラー。ときどき見かけるPStoreの「バージョン違いエラー」である。……って、マテ。たしかにtDiary.NetのRubyは1.6.5でちと古いが、最新の1.6.7までMarshalに変更はなかったはずだ。

てことはもしや……と思ってまだ運用中の古い日記を見てみると、Powered by Ruby version 1.7.2……って、うひぃ。Ruby 1.7で運営してるのはあおきさんだけだと思っていたんだが、まだあったかー。HEADかどうかまではわからんけど。

さて困ったぞ。「できません」と突っ返すのは簡単だが、なんかしゃくにさわる。変換するには、1.7でバイナリを読んでテキストにし、1.6でテキストを読んでバイナリにすればいい。テキスト化にはtDiary 1.5のコンバータを使うという手もあったが、逆変換が面倒だ。ここはもっと楽なAMarshalを使ってみる。Ruby 1.6でも単純な構造のオブジェクトなら動くみたいだし、大丈夫でしょう。

しかしさらに問題が。最近のRuby 1.7はAutoconf 2.5が必要なんだけど、AsumiのAutoconfはまだ2.13。Autoconfまで入れ替えてRuby 1.7をビルドするのは面倒だぞ。じゃあバイナリ探してくればいい。Rubyで一番インストールが簡単で、1.6と共存させやすいのと言えば、mswin32版かな(笑)。というわけで、ruby-1.7.2-20020603-i386-mswin32を持ってきて、Windowsにインストール。

さらに、squeeze.rbを改造してAMarshal変換ツールを作成、Windows向けにtdiary.confを書き換えてから実行すればテキストデータのできあがり。WindowsでもtDiaryが動くようにしておいてよかったぜ。続いてはLinux上でAMarshalなテキストを読んでPStoreを吐き出すツールを書けば、変換完了。書いたコードは合わせて20行程度か。わりかし簡単にできてしまった。まさかWindowsまで持ち出すハメになるとは思わなかったが。

というわけで、使えますねぇ、AMarshal。

本日のツッコミ(全3件) [ツッコミを入れる]
たむら (2002-07-12(金) 00:32)

そろそろ実用面でも 1.7かしら。
# 一応、どちらも作ってはいるが。
拡張ライブラリとか make出来ないのが多そうでコワイ。

ただただし (2002-07-12(金) 09:25)

そう言えば、いまにも1.8が出そうな雰囲気の時期もありましたねぇ(笑)

引っ越して来た人 (2002-07-12(金) 12:06)

おぉ。そんなご苦労があったとは。ありがとうございます!


トップ «前日 最新 翌日» 編集
RSS feed