kariaの日記 @ Alice::Diary

ノリツッコミの鳩子がはてなブログ書いちゃうよ

FreeBSDとBitlBeeとTiarraで快適Twitter生活

shunirr.orgとかgoogleとか見ながら頑張ってBitlbeeを設定してたんだけど、3日ぐらい迷った末にやっとできたので設定方法とかメモっておきます。メモだけなので他所も参考にしましょう。うまくいけば最近話題のJaikuもIRCクライアント経由で読み書きできるようになるよ!

登場人物と目的

  • Bitlbee
    • IM-IRCゲートウェイ。要するにインスタントメッセンジャー(MSN MessengerとかGoogleTalkとか)をIRCクライアントで見るためのソフト。
  • tiarra
    • IRC proxy。複数のIRCサーバへの接続を1つにまとめられる上に、繋ぎっぱなしにしたりログを取ったりできる。
  • Twitter

TwitterGoogleTalk経由で送信したり発言したりすることができるので、Bitlbeeを使ってIRCクライアントでTwitterの読み書きができるようにした上で、他のIRCサーバと同じようにtiarra経由にして便宜を図るのが今回の目的です。

bitlbee-tiarra

わかりにくいので図にしてみた。なんでもIRCクライアント1つにするぜ!ってのが最終目的。こうすると外出先でもアドエスのEbIRCで一通りの用が済むので楽なのよん。

インストールから起動まで

インストールにはaptitude使えとか書いてありますがFreeBSDなのでportsでやりましょう。1行で終わります。

# portinstall irc/bitlbee

portsからインストールした場合、設定ファイルは/etc/bitlbee/bitlbee.confではなく、/usr/local/etc/bitlbee/bitlbee.confにあります。いじるべき場所は以下の3カ所。全てコメントアウトされてますので#を外して以下のように設定します。

RunMode = Daemon
(中略)
DaemonInterface = (ローカルのIPアドレス)
DaemonPort = (適当なポート番号)

んで、rootのまま「bitlbee」と打ち込めば起動するはずなのですが、自分の場合起動して設定まで終わらせてもうまく動作しませんでした。具体的にはこんな感じ↓

(karia) account on 1
(root) JABBER - Logging in: Connecting
(root) JABBER - Login error: Unable to connect
(root) JABBER - Signing off..

ネットワークにはちゃんと繋がってるしサーバ名も間違ってなかったので、「Unable to connect」とか言われるのはちょっと心外。ググっても解決方法が見あたらず(←ここで2日ぐらい消費した)、一か八か一般ユーザで動作させてみることにしました。

まず、bitlbeeが各種ファイルを保存するためのディレクトリを作って、そこにbitlbee.confをコピーし、所有者等を適切に設定します。ディレクトリ名はここでは「/home/karia/bitlbee」とします。

さて、Bitlbeeを起動します

% bitlbee -D -n -c /home/karia/bitlbee/bitlbee.conf -d /home/karia/bitlbee

「-D -n」というのはDeamonモードで動かす指定、-nはバックグラウンドに行くようにする設定です。本来は「RunMode = Daemon」と設定に書いてるので大丈夫なはずなのですが、こう書かないとうまく動かないこともあるみたいです。「-c」は設定ファイル、「-d」はその他の設定を保存するディレクトリの指定です。詳しくは「man bitlbee」で。

ここでpsでbitlbeeが起動してるかどうかをちゃんと確認しましょう。起動に時間がかかったり起動してなかったりすることがあります。bitlbeeという文字列が発見できれば起動成功です。おめでとうございます。ありがとうございます。

ちなみにrootで動かなかった原因ですが、「-d」を指定しなかったときの標準である/var/lib/bitlbee/が存在しなかったからかな?と思ってます。ホントにそうなのかどうかは試してないので知りません。

設定について

ここは他所に書いてある通りなので省略しますが、1点だけ。

(karia) set charset utf8
(root) charset = `iso8859-1'
(karia) set charset utf-8
(root) charset = `utf-8'

というわけで、「utf-8」のハイフンは抜かないように注意しましょう。

ちゃんと繋がるときは以下のようなメッセージが出ます。

(karia) account on
(root) Trying to get all accounts connected...
(root) JABBER - Logging in: Connecting
(root) JABBER - Logging in: Connected
(root) JABBER - Logging in: Requesting Authentication Method
(root) JABBER - Logging in: Authenticating
(root) JABBER - Logged in

パスワードを間違えると最後の1行がこうなります。

(root) JABBER - Login error: Error 403: Unknown error

まあ参考までに。

tiarraの設定について

おもむろにtiarraに繋ぐ前に直接LimeChat等のクライアントで接続して設定してみるのがオススメ。でないと何かミスったときにbitlbeeが悪いのかtiarraが悪いのか自分が悪いのかよくわからなくなります。

tiarraの設定をいじるとき、tiarra.conf内にあるSystem::PrivTranslatorをONにしましょう(デフォルトではオフになってるはず)。これはprivmsgでも相手の名前にサーバー名を付加する設定で、ONにしないと受信はできても発言ができません(「twitter No such nick/channel」とか言われるはず)。

あと、networksブロックに「name:」を追加するのを忘れずに。

感想とか

bitlbeeの資料が少なくて苦労した(とくにBSDで使ってる例が全然見あたらない)。今回わざわざエントリを起こしたのはそういう訳です。あと、ニックネームを変えてみたけど短い名前にならないのはなんでだろう。ちゃんとaccount on/offを繰り返したりbitlbee自体を再起動したりしたのになー。謎。