iPhone買ったんでkeitaircをiPhone用にカスタマイズして使っていて、やっぱ自動受信は欲しいなーと思ってたら、@kenan_から「それmobircでできるよ」と言われた。
とりあえず本体を入手。さくらにsvn入ってなかったので、手元のMacからsvnしてアップロードした。
$ svn co http://svn.coderepos.org/share/lang/perl/mobirc/trunk/mobirc
make testで不足モジュールをチェックして、
$ perl Makefile.PL
$ make test
cpanからインストールしまくる。
$ cpan
cpan> install モジュール名
...
以下のモジュールでインストールに失敗したけど面倒なのでforce installした。
- HTTP::MobileAgent
- Data::Visitor::Encode
- HTML::Entities::ConvertPictogramMobileJp
- Encode::JP::Mobile
config.yaml.sample をコピーして適当に編集して保存。
$ cp ~/mobirc/config.yaml.sample ~/mobirc/config.yaml
$ vim ~/mobirc/config.yaml
実行。
$ ~/mobirc/mobirc
Could not load class (App::Mobirc::Plugin::Component::HTTPD) because : Can't locate object method "mk_accessors" via package "Data::Visitor::Encode" at /home/retlet/perl/lib/Data/Visitor/Encode.pm line 16.
BEGIN failed--compilation aborted at /home/retlet/perl/lib/Data/Visitor/Encode.pm line 17.
Compilation failed in require at /home/retlet/mobirc/lib/App/Mobirc/Web/Handler.pm line 4.
BEGIN failed--compilation aborted at /home/retlet/mobirc/lib/App/Mobirc/Web/Handler.pm line 4.
Compilation failed in require at /home/retlet/mobirc/lib/App/Mobirc/Plugin/Component/HTTPD.pm line 7.
BEGIN failed--compilation aborted at /home/retlet/mobirc/lib/App/Mobirc/Plugin/Component/HTTPD.pm line 7.
Compilation failed in require at /home/retlet/perl/lib/i386-freebsd-64int/Class/MOP.pm line 139.
at /home/retlet/perl/lib/i386-freebsd-64int/Class/MOP.pm line 140
Class::MOP::load_class('App::Mobirc::Plugin::Component::HTTPD') called at /home/retlet/perl/lib/MooseX/Plaggerize.pm line 20
MooseX::Plaggerize::load_plugin('App::Mobirc=HASH(0x89b149c)', 'HASH(0x89902c0)') called at /home/retlet/mobirc/lib/App/Mobirc.pm line 44
App::Mobirc::_load_plugins('App::Mobirc=HASH(0x89b149c)') called at /home/retlet/mobirc/lib/App/Mobirc.pm line 35
Class::MOP::Class:::around('CODE(0x87732f8)', 'App::Mobirc', '/home/retlet/mobirc/config.yaml') called at /home/retlet/perl/lib/i386-freebsd-64int/Class/MOP/Method/Wrapped.pm line 128
Class::MOP::Method::Wrapped::__ANON__('App::Mobirc', '/home/retlet/mobirc/config.yaml') called at /home/retlet/perl/lib/i386-freebsd-64int/Class/MOP/Method/Wrapped.pm line 88
App::Mobirc::new('App::Mobirc', '/home/retlet/mobirc/config.yaml') called at ./mobirc line 36
ひゃー。
モジュール不足じゃないしわからんちーん。と、#Twitter@IRCNetで相談してみたらちょうどData::Visitor::Encodeで問題が発生してることを教えられた。
とりあえずここまで。
kenanさんに perl Makefile.PL でWarningになってるやつを全部入れるんだ。と言われたので入れようとしている。
$ perl Makefile.PL
include /home/retlet/mobirc/inc/Module/Install.pm
include inc/Module/Install/Metadata.pm
include inc/Module/Install/Base.pm
include inc/Module/Install/Makefile.pm
include inc/Module/Install/TestBase.pm
include inc/Module/Install/Include.pm
include inc/Test/Base.pm
include inc/Test/Base/Filter.pm
include inc/Spiffy.pm
include inc/Test/More.pm
include inc/Test/Builder.pm
include inc/Test/Builder/Module.pm
include inc/Text/Diff.pm
include inc/Test/Exception.pm
include inc/Module/Install/WriteAll.pm
Writing META.yml
include inc/Module/Install/Win32.pm
include inc/Module/Install/Can.pm
include inc/Module/Install/Fetch.pm
Warning: prerequisite Data::Visitor::Encode 0.09 not found.
Warning: prerequisite HTTP::MobileAgent::Plugin::Locator 0.01 not found.
Writing Makefile for mobirc
Data::Visitor::Encode と HTTP::MobileAgent::Plugin::Locator が入らない( ´・ω・)
Data::Visitor::Encode は Data::Visitor のバージョンを下げれば良さそうなので下げてリトライ。
$ cpan i N/NU/NUFFIN/Data-Visitor-0.17.tar.gz
$ cpan i Data::Visitor::Encode
...
入った。
HTTP::MobileAgent::Plugin::Locator はよくわからなかったのでforce installした。
今度こそ動くかな?
$ cd ~/mobirc
$ ./mobirc
エラー出ない。動いてるっぽい。
あれこれいじってたらtiarraが落ちて、その後mobircを起動すると以下のエラーで落ちるようになった。
Can't use an undefined value as an ARRAY reference at /home/retlet/perl/lib/POE/Filter/Stackable.pm line 90.
タイミングからいってtiarraが過去ログ流してるせいかなーと当たりをつけて、tiarra.confから該当モジュールをオフに。
- Log::Recent
再度mobircを立ち上げたら大丈夫っぽい。その後、設定を戻しても落ちなくなった。
tiarraが落ちたあたりのログに変なものでも混じってたのかなー。
参考
- Newer: 電波の屆きにくいところでiPhone使ってみた
- Older: VimperatorでコピーやペーストとかOSのショートカットが効かない