Tagwire、MT-XSearch、Cygwin導入メモ

以前「カテゴリーとTagwire Plugin」で書いた通り、カテゴリーを廃止してキーワードタグを導入しました。
その際に苦労したことを書いてミマス。「導入してみようかなー」と思った方に参考になるとイイナァ。
*10/6/2005…見辛かったので記事の一部を書き直しました。

Plugin公開サイトと、導入する際に参考にしたサイトは下記の通り。

Tagwire Pluginの導入

Ogawa::Memoranda: Tagwire Pluginからプラグインをダウンロードしてきて
中身をPluginフォルダにいれるだけ。
このプラグインを導入すると、キーワードタグのリストアップや分別ができるようになります。しかしキーワード毎のアーカイブは作成できません。

例えば「MT」というキーワードもつエントリーをいくつかを作ったとする。
MTをキーとするエントリー一覧の出力自体は可能ですが、MT、game、news…等、各キーワード毎のエントリ一覧を自動で生成することが難しい。(キーワード毎のアーカイブ自動作成)

「手動でキーワードタグ毎のエントリ一覧ページを作成する」という手もありますが、非常にめんどくさい。
「カテゴリー分けが面倒くさい」からキーワードにしたのに、「カテゴリー使用時以上に手間がかかる」とか本末転倒もいいところ。

この問題はOgawa::Memoranda: TagwireとMT-XSearchによる動的タグアーカイブに載っているように
MT-XSearchと連動させることで解決できます。
で、とりあえず上記の記事を読むわけですが…。

…??(-ω-)??

Ogawa::Memoranda:TagwireとMT-XSearchによる動的タグアーカイブより抜粋。

mt-xsearch.cgiとplugins/mt-xsearch.plに以下のパッチを当てます。これはMT-XSearchの多言語対応とバグフィックスのためで、将来のMT-Plus/MT-XSearchのリリースではこのパッチ内容が反映されている可能性があります。
(以下パッチのコード)

パッチをあてる」って何(゚д゚;=;゚д゚)???

この「パッチをあてる」ってとこで思いっきりつまずいてマシタ。
色んなとこ検索かけても「パッチを当てました!」とか「パッチを当てて、んでこうこうあーします。」とか、「パッチはあてたんだけど~~」とか。
皆「パッチを当てる」こと自体はすんなり済ませているけれど、「パッチをどうやってあてるか」というのは書いていない…。
「もしかしてすぐできることなのけ?」と色々見当違いなことを探したり考えたり。余計な時間かけまくりました。

パッチを当てるための準備

で。余計な時間かけまくった挙句、行き着いた結論が「標準のwindowsそのままじゃできない」ということ。
…ここまでたどり着くのにえっらい時間かかりました。

検索していくと、「patchコマンド」というものが目に付きます。このコマンドは標準のwindowsコマンドプロンプトにはありません。
んじゃぁどうするのかと言うと、win上で簡易的なunix環境を構築できる「Cygwin」を使います。

10/6/2005 追記—-
パッチを当てる方法、準備には色々あるみたいです。
*patchコマンドの使い方はこのページの下にあります。

Cygwinインストール

このCygwin、かなり容量がデカぃ。「こんなに容量食うヤツいらね( ゚д゚)、ペッ」
という方は「winでpatchコマンドを使えるようになるもの」があるらしいので探してみてください。
Windows環境で「ファイルにパッチ(patch)を当てる」 : 亜細亜ノ蛾 – Weblogを参照して下さい。

Cygwinのインストールに関しては詳しいサイトが多々あるので、読みながらインストールして下さい。
解説サイトの一つ → Cygwinを使いこなそう
*インストールの際、注意することがあります。
そのまま普通にインストールすると、一番欲しい「patchコマンド」が入っていません
なのでインストールの途中で調節しなければなりません。

セットアップを進めていくとこういう画面になります。 *クリックで拡大
0905s1.jpg
赤で囲っている、「Devel」て項目をクリック。そうすると様々なオプションがズラっと表示されます。
ずっと下を見ていくと、「patchutilsうんたら~~」という箇所があります。 *クリックで拡大
0905s2.jpg
ここの項目で「src」にチェックを入れます。あとはインストールを進めるだけ。
これでcygwinのインストールは終了です。
起動する時はcygwinインストールフォルダにあるcygwin.batをダブルクリックします。

patchコマンド

インストールが終わったところでパッチあて作業にはいります。
Cygwinを使わず、通常のコマンドプロンプトで作業する場合もpatchコマンドの使い方自体は同じだと思います。

まず適当な場所に作業フォルダを作成、その中にmt-xsearch.cgiと、パッチ内容を書き込んだテキストをいれます。
例)manageという作業フォルダを作り(場所はC:¥manage)、その中にmt-xsearch.cgiとパッチ内容を書きこんだテキスト(search.txt)を入れる。

cygwin.batをクリックして起動。
コマンドプロンプトと同じようにして作業フォルダに移動。

cd C:¥manage

0905s3.jpg
赤線で囲んだところを見て、望み通りのフォルダに移動したのを確認する。
確認したら、パッチコマンドを実行する。

patch -p0 < search.txt

0905s4.jpg
このように「patching file mt-xsearch.cgi」とか出てきたら成功。
パッチコマンドに関する詳しいことはこの辺を見てくださいな。
同じようにしてplugins/mt-xsearch.plにもパッチを当てます。
この場合、pオプション(-pの部分)が0のままだとうまくいきません。-p1、-p2と数字を変えるとうまくいったと思います。

二つのファイルにパッチをあて、あとはOgawa::Memoranda: TagwireとMT-XSearchによる動的タグアーカイブ
に書いてある通りにすればあっさり導入できます。

キーワード毎のアーカイブは「MT-XSearch」の検索結果画面を使用します。
なのでテンプレートモジュール「XSearch Tagwire」をアーカイブっぽくなるようにいじればOK。

Tagwire Pluginを導入する際、このパッチ当て作業にかなり時間とられました(ノ∀T)。

あ、そういえば.htaccessの指示がうまくいかなくて、キーワードアーカイブのURLを
「ブログURL/tag/タグ名」にできない…。cgiパスがおかしいのかなぁ。ううむ。

キーワードタグを導入したことにより、記事を書くのがかなり楽になりました。書いた記事に合うタグをつければいいんだし。
Movable Typeを使ってる方で、カテゴリー分けがちょっとメンドイなぁ…って思った方は
Tagwire Pluginの導入を考えてみてはいかがでしょう。…導入するまでがチョットヤヤコシイケドネ。

7件のコメント

  1. CGI へのパッチの当て方を知りました

    実はパッチの当て方を知らなかったので、 wIng さんががんばって調べられた結果を参考にさせていただきました。

  2. Windows環境で「ファイルにパッチ(patch)を当てる」

    patchには自分も苦労しました。同士としてトラックバックします(笑)。patchコマンドを利用するだけならもっと簡単な方法があるので記事にしました。それとは別…

  3. tag導入

    ようやくutahblogにもtagを導入しました。 具体的にはOgawa::Me…

  4. はじめまして。
    私もタグ導入しようとしてるのですが、
    wIngさんもうまくいかないと書かれてる「ブログURL/tag/タグ名」で躓いてます。

    ただ、wIngさんのタグを拝見したところ、その後、うまくいかれてるようで、もしよろしければ .htaccess の指示等どうされたらうまくいったのか教えていただけないでしょうか?

    .htaccess には ogawa さんのところに書いてあるのをそのままコピーしてるんですが、まずその設置場所がわかりません。/mt/ の方ではなく、ブログの置いてあるパスの方に置くと、反応はあるんですが「Got an error: Can’t call method “build” without a package or object reference at mt-xsearch.cgi line 42」ってエラーが出てきちゃうんですよね。
    もしアドバイスできそうなことがありましたら、よろしくお願いします。

  5. こんにちは。はじめまして。やはりそこ躓きますよね…(-ω-)
    参考になるかどうかは分かりませんが、ウチがやったことを記しておきます。

    ウチの場合は.htaccessをブログのindex.phpやmt-xsearch.cgi、mt-search.cgi等があるトップに設置しています。また、.htaccessに記述したRewriteRuleもogawa様の記述通りではなく、ほんの少し変えてあります(…と言ってもパスを変えただけですが)。

    RewriteEngine on
    RewriteRule ^tag/(.*)$ /mt-xsearch.cgi?blog_id=1&delimiter=,&search_key=Tagwire&search=$1

    とりあえず↑を.htaccessに記述し、ブログを設置しているパスへ置いてみて下さい。

    「Got an error: Can’t call method “build” …」
    このエラーはテンプレートモジュール(XSearch Tagwire)の名前が間違っている、もしくはモジュールが存在しない時にも出てくるので、一応そこもチェックしてみて下さい。

  6. wingさん、アドバイスありがとうございました。
    wingさんがほんの少し変えられたという記述でパスだけ変更して、ブログの方に設置してみたところ、無事運用できるようになりました。
    mt を置いてる方には .htaccess が入ってなくても大丈夫な模様です。
    ともあれ本当に助かりました。多謝!

  7. うまくいったようで何よりです。
    .htaccessの記述方法も少し勉強しようかな…(-ω-)

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください