続・Plagger を Cygwin にインストールしてみた
目標がlivedoor ReaderをGmailに送ることなので、そこまでのメモ。
CPANからインストールしたので、~/.cpan
ができてて、Plagger一式もその下にある。
~/.cpan/build/Plagger-0.7.2/examples
以下のサンプルに合わせる*1ために、~/.cpan/build/Plagger-0.7.2
以下を~/plagger
にコピー。
bash$ pwd /home/oto-oto-oto bash$ mkdir plagger bash$ cp -r ./.cpan/build/Plagger-0.7.2/* ./plagger/
あと、yaml を設定しないといけないっぽいので、examples
のlivedoorreader2gmail.yaml
を~/plagger
にコピーして編集。
global: plugin_path: - /home/oto-oto-oto/plagger/assets/plugins assets_path: /home/oto-oto-oto/plagger/assets timezone: Asia/Tokyo log: level: info plugins: - module: Subscription::LivedoorReader config: username: gmailのid password: gmailのパスワード mark_read: 0 - module: Publish::Gmail config: mailto: (gmailのid)@gmail.com mailfrom: (gmailのid)@gmail.com mailroute: via: smtp_tls host: smtp.gmail.com:587 username: gmailのid password: gmailのパスワード
mark_read
は、1だと既読にして、0だと未読のまま。
転送がうまくいくまで何回か試行錯誤しそうなので、とりあえず0にしておく。
ここまでやって、とりあえず実行。((Emacsで自動保存しながら編集してたのではまった。plagger実行時、パスワードのところがbase64
でエンコードされて上書きされるので競合してしまう。自動保存を一時的に外すか、エディタを抜けるかした方がいい。))
bash$ plagger Plagger->bootstrap: /usr/bin/config.yaml: No such file or directory at /usr/bin/plagger line 24
デフォルトでは/usr/bin/config.yaml
を読むみたい。今回は直接指定する。
plagger -c plagger/livedoorreader2gmail.yaml Can't locate JSON/Syck.pm in @INC (@INC contains: /usr/bin/lib /usr/lib/perl5/5.8/cygwin /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/cygwin /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/cygwin /usr/lib/perl5/vendor_perl/5.8 .) at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 5. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 5. Compilation failed in require at /usr/lib/perl5/site_perl/5.8/Plagger.pm line 252.
JSON/Syck
が無いと怒られた。CPANから入れる。
bash$ perl -MCPAN -e shell cpan> i /JSON/ (中略) Module JSON::Syck (A/AU/AUTRIJUS/YAML-Syck-0.45.tar.gz) (中略) cpan> install JSON::Syck cpan> q bash$ plagger -c plagger/livedoorreader2gmail.yaml Base class package "WWW::Mechanize" is empty. (Perhaps you need to 'use' the module which defines that package first.) at /usr/lib/perl5/site_perl/5.8/Plagger/Mechanize.pm line 3 BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8/Plagger/Mechanize.pm line 3. Compilation failed in require at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 7. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 7. Compilation failed in require at /usr/lib/perl5/site_perl/5.8/Plagger.pm line 252.
今度はWWW::Mechanize
が無いと怒られた。CPANから入れる。
bash$ perl -MCPAN -e shell cpan> i /Mechanize/ (中略) Module WWW::Mechanize (P/PE/PETDANCE/WWW-Mechanize-1.18.tar.gz) (中略) cpan> install WWW::Mechanize cpan> q bash$ plagger -c plagger/livedoorreader2gmail.yaml > log20060624plagger.log Plagger [info] plugin Plagger::Plugin::Subscription::LivedoorReader loaded. Plagger [info] plugin Plagger::Plugin::Publish::Gmail loaded. Plagger::Plugin::Subscription::LivedoorReader [info] You have 60 unread item(s) on livedoor Reader. Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded. Plagger::Plugin::Publish::Gmail [info] Sending 404 Blog Not Found to (your id)@gmail.com (略)
うまくいったようだ。
あー、しんど。
*1:無理に合わせることは無いと思うけど