さくらでirssi動かし始めた - すぎゃーんメモの続き。
せっかくirssiが動いたので次はtig.rbを。
基本的にlistは作っているけどほとんど使っていないので使用しない方向で。@hokacchaのものを使わせていただきます。
http://webtech-walker.com/archive/2010/01/29165709.html
git clone git://github.com/hokaccha/net-irc.git
でexample/tig.rbを動かす。
rubyのことはよく分かっていないけど、gemでjsonを入れないと動かないっぽい。
さくらサーバーに Rubygems をインストールする - make world
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar zxvf rubygems-1.3.5.tgz ruby setup.rb --prefix=$HOME/local
でinstallできたっぽい。
.zshrcに環境変数追加。
export RUBYLIB=$HOME/local/lib export GEM_HOME=$HOME/local
で、
gem18 install json
でいけるかと思いきや、"chown/chgrp: Operation not permitted"とか言われて怒られる。
もう一個、RB_USER_INSTALLという環境変数も必要っぽい。
さくらインターネットで、gem install すると「chown/chgrp: Operation not permitted 」と叱られる件の対応 | JAM☆ぱん
alias gem="RB_USER_INSTALL=1 gem18" gem install json
と適当なalias書いてインストールした。
で、ようやくtig.rbを動かせる。
./tig.rb -n 'sugyan mentions' &
とかで動かすらしい。
$HOME/.irssi/configでは
servers = ( { address = "localhost"; chatnet = "TIG"; port = "16668"; password = "********"; use_ssl = "no"; ssl_verify = "no"; autoconnect = "yes"; }, ... ); chatnets = { TIG = { type = "IRC"; }; ... };
とか書いておく。irssiで"/connect TIG"で接続。
出てきたエラー。
D, [2010-02-08T00:12:01.107555 #5770] DEBUG -- : ["POST", "https://twitter.com/account/update_profile.json"] E, [2010-02-08T00:12:01.396691 #5770] ERROR -- : #<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed> D, [2010-02-08T00:12:01.396827 #5770] DEBUG -- : SEND: :twittergw NOTICE #twitter :Fatal SSL error was happened #<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed> #<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed>
SSLで何かしようとして失敗しているようだ。色々ググって調べてみる。
tig.rb のアップデート - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech
あーありがち - Ruby の SSL の証明書検証の失敗でハマっていた
タイトル未定:Rubyでnet/httpsで通信 - livedoor Blog(ブログ)
Ruby Reference Manual
よく分からなかったけど、証明書のパスを明示的に指定すると良いっぽい。さくらの環境では以下のように一行書き換えたら動くようになった。
diff --git a/examples/tig.rb b/examples/tig.rb index 6a282e1..69ef3ff 100755 --- a/examples/tig.rb +++ b/examples/tig.rb @@ -2149,6 +2149,7 @@ class TwitterIrcGateway < Net::IRC::Server::Session http.use_ssl = true http.cert_store = @cert_store http.verify_mode = OpenSSL::SSL::VERIFY_PEER + http.ca_file = '/usr/local/share/certs/ca-root-nss.crt' end http rescue => e
ちゃんと何かを設定すればtig.rbを書き換えなくても動くようにできるのかな…