無印吉澤(※新エントリはhatenablogに掲載中)

吉澤です。このサイトではIPv6やP2Pなどの通信技術から、SNSやナレッジマネジメントなどの理論まで、広い意味での「ネットワーク」に関する話題を扱っていたのですが、はてなブログに引っ越しました
最新の記事は http://muziyoshiz.hatenablog.com/ でご覧ください。
RSSフィードは http://muziyoshiz.hatenablog.com/feed に手動で変更するか、
Feedly or Live Dwango Reader を使っている方は以下のボタンで変更ください。
follow us in feedly Subscribe with Live Dwango Reader
«前の日記(2006/04/28) 最新 次の日記(2006/05/18)» 編集

2006/05/06

[tDiary]Rast-0.3.1をインストール

全文検索システムRastをインストールして、tDiaryで書いた過去の日記を全文検索できるようにしました(サイドバーに注目!)。

このサイト(無印吉澤)はさくらインターネットのレンタルサーバを使っているので、この手のソフトを入れるのは自宅サーバと比べて非常に面倒なのですが、「じゃれすのろぐ」のインストールメモのおかげでなんとかインストールできました。

さくらで、Rast-0.3.1(まとめ)(じゃれすのろぐ)
http://eojareth.net/diary/20051226.html#p01

ただ僕の場合は、このサイトで書かれていないポイントでも結構つまづいてしまいまして……具体的には3時間くらい右往左往してしまいました。そんな僕みたいな「UNIXでソフトをインストールしようとすると、必ず変なところでつまづいてしまう」人のために、そのつまづきポイントをメモしておきます。

----

■ 前提

※注:(user_name)は自分のユーザ名、(tdiary_dir)はtdiary.rbのあるディレクトリに読み替えること。

  • /home/(user_name)/local 以下に、必要なソフト一式をインストールする
  • インストールするソフトのソースコードは、/home/(user_name)/local/src以下に展開する
  • 環境変数PATHが、/home/(user_name)/local/binを含む

■ 「1. さくらでビルドした環境」への補足

  • apr-utilの./configureには --with-apr=/home/(user_name)/localオプションを指定しないとエラー
  • Berkeley DBはbuild_unixディレクトリの中に移動してから、../dist/configure, make, make install

■ 「2. Rast-0.3.1 ビルド」への補足(1)

Rastのmake install時に以下のエラー(Error code 71)が出る。これは、レンタルサーバの共有部分にRubyのライブラリを書き込もうとしてしまうのが原因。

/usr/local/bin/bash ../../../mkinstalldirs /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd4
 /usr/bin/install -c -m 644 rast.so /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd4/rast.so
install: /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd4/rast.so: Permission denied

そこで、上記のディレクトリの代わりに

/home/(user_name)/local/lib/ruby/site_ruby/1.8/i386-freebsd4

を作成して、./configureのオプションを以下のように指定する(最後の2行が追記部分)。

./configure --prefix=/home/(user_name)/local \
        --with-apr-config=/home/(user_name)/local/bin/apr-1-config \
        --with-apu-config=/home/(user_name)/local/bin/apu-1-config \
        --with-db-includes="-I/home/(user_name)/local/include" \
        --with-db-libs="-L/home/(user_name)/local/lib -ldb-4.2" \
        --with-rubylibdir=/home/(user_name)/local/lib/ruby/site_ruby/1.8 \
        --with-rubyarchdir=/home/(user_name)/local/lib/ruby/site_ruby/1.8/i386-freebsd4

参考:NeyBSD NetBSDでRast-0.3.1を使おうとしてみる(おまぬけ活動日誌)

■ 「2. Rast-0.3.1 ビルド」への補足(2)

Rastのmake時に以下のエラー(Error code 1)が出る。さくらインターネットでは/usr/local/include以下にiconv.hがあるので、ここにインクルードパスを通す必要がある。

In file included from bzip2.c:6:
../../include/rast/filter.h:14: iconv.h: No such file or directory

回避する方法はいろいろあると思うが、僕の場合は以下のようなシンボリックリンクを作成して回避した。

%ln -s /usr/local/include/iconv.h /home/(user_name)/local/include/iconv.h

■ 「3. tDiary-Rastへの対応」への補足(2006/05/07追記)

まとめ記事にあるindex.rb、update.rb、rast-search.rb、rast-register.rbの他に、(tdiary_dir)/tb.rbの先頭も以下のように変更する必要あり。

#!/usr/bin/env LD_LIBRARY_PATH=/home/(user_name)/local/lib ruby

このようにtb.rbを変更しておかないと、rast-register.rbプラグインの呼び出しでエラー終了してしまうため、それ以降のプラグイン(具体的にはrecent_trackback3.rbとか)が呼び出されない。

tb.rbに限らず、今後tb.rbと似たようなプラグインを追加する際には注意が必要。

■ rast.soへパスを通す

上記の手順で、rast.soを/home/(user_name)/local以下に作成したため、rast.soはRubyライブラリの探索パスに含まれていない。このままではRubyプログラムからrast.soを利用できないので、以下のようにして、tdiary.rbのあるディレクトリ(ここにrast-search.rbを設置する)にシンボリックリンクを作成する。

%ln -s /home/(user_name)/local/lib/ruby/site_ruby/1.8/i386-freebsd4/rast.so (tdiary_dir)/rast.so

rast-register.rbを設置する(tdiary_dir)/misc/pluginディレクトリの方には、シンボリックリンクを作らなくても平気だった。

参考:Rubyリファレンスマニュアル - 組み込み変数

■ おまけ:Rastをテストする方法

Rast(+tDiary)が正しく動くかどうかは、pluginフォルダにrast-register.rbをコピーしたあとで、以下のようにインデックスを作成してみることでテストできる(以下は、正しくインデックスを作成できた場合の出力例)。

%cd (tdiary_dir)/misc/plugin
%setenv LD_LIBRARY_PATH /home/(user_name)/local/lib
%ruby -I /home/(user_name)/local/lib/ruby/site_ruby/1.8/i386-freebsd4/ rast-register.rb -p (tdiary_dir) -c (tdiary_dir)
(2004/) 0609 0629 0711 0911 1115 1119 1120 1122 1125 1130 1208 1215 1220 1225 1229 (2005/) 0105 0111 0117 0118 0119 0120 0127 0203 0207 0208 0214 0221 0224 0227 0313 0322 0328 0404 0411 0418 0426 0501 0506 0511 0514 0517 0518 0524 0531 0607 0613 0621 0624 0627 0703 0704 0712 0720 0801 0803 0809 0815 0901 0904 0911 0917 0929 1009 1016 1024 1109 1115 1120 1124 1130 1206 1214 1216 1224 1231 (2006/) 0107 0111 0116 0122 0127 0208 0213 0220 0226 0307 0313 0324 0405 0413 0422 0428

あとは「3. tDiary-Rastへの対応」さえしっかりしておけば、rast-registerプラグインも使えるようになる。検索フォームの設置方法は、tDiaryドキュメント - rast-register.rbを参照。

[tDiary]tDiary 2.1.4のnavi機能がおかしい

※すいません。この挙動は昔からの仕様だったようです。追記を参照。

今日の日記を書いて、初めて気づきました。月の最初、および最後の日記に表示されるnavi(「前の日記」、「次の日記」という表示)のリンク先がなんか変です。月の最初の日(1日)と最後の日(28〜31日)は、日記を書いていなくてもnaviに表示されてしまいます。

tDiary 2.1.4を使っている他の人はどうなのかなぁ、と思って調べてみたら……思いのほか毎日日記書いてる(=このバグに影響されない)人が多くて困ったんですけど……例えばmhattaさんのMy Human Gets Me Blues(2006-05-01)あたりを見ると同じ症状が出てました。とりあえず、うちのサイトだけの問題ではなさそうです。

----

(2006/05/07追記)
これはtDiary 2.1.4の問題ではなくて、元々navi_userプラグインを入れないとこういう挙動をする仕様だったみたいです。僕の勘違いでした。2.1系が開発版だからって、バグの可能性を疑いすぎるのは良くないなあ……。

参考:日単位での表示で「前の日記」や「次の日記」へのリンクが存在しない頁を指している - デフォルトの制限(tDiary-users Wiki)

本日のTrackBacks(全1件) []
# My Human Gets Me Blues:過去記事検索を追加するには (2006/05/07 19:31)

レンタルサーバにRastを入れてtDiary-Rastで実現する方法。そのうちやってみようかな。
なお、この日記の検索フォームは今のところtdiarysearchで実現している。search.rbを置くだけなので簡単。


2004|06|07|09|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|10|11|
2009|01|02|03|04|05|07|08|10|
2010|01|03|
2015|03|
スパム対策のため、60日以上前の日記へのコメント及びトラックバックは管理者が確認後に表示します。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。