インストールがむずかしいことで評判の「Plagger」ですが,その評判通り 使える様になるまでが大変です.一般的には,CPANからPlaggerを入れれば いいのですが,依存関係が複雑なのとmakeしながらになるのでやたらと 時間もかかり,一発で入らなかったりと,面倒なことだらけです.
この度,さくっと入れる方法が確立できたのでここにメモしておきます. Ubuntu環境ないよという人のために,Virtualboxという仮想環境にUbuntuを 入れるところからスタートします.Ubuntu持ってる人は飛ばして下さい. そして,何よりパッケージを作ってくれた半袖さんには ちょー感謝><!
VirtualBoxにUbuntu入れる
VirtualBoxとはSunが提供してるフリーの仮想環境ソフト.これで仮想マシン (こちらをゲストと呼びます)を作ってそこにUbuntu Server Editionを入れて, ホスト(VirtualBoxを立ち上げているマシン.僕の場合MacBook)にぶらさげる ことで,ネットワークにも接続できるようにします.ちなみにホストは何でもいいと 思いますが,この際ですのでMacを持ってない人は買いましょうw
やりかたは以下のリンクが懇切丁寧ですばらしいので,書いてある通りにやれば 問題ありません.ishikawaさん++
なお,ネットワークはNATが楽なので良い感じです.ポートを22から変更するため, sshがめんどくさいので,~/.ssh/configをいじっておきます.
Host GUEST HostName localhost Port *****
ゲストをNATでつないでる場合,HostNameはlocalhostで,VirtualBoxで指定した ポート番号を指定しておけば,
$ssh GUEST
だけでSSHいけます.ユーザ名とかは適当にやってください.configでもいいし, ユーザ名そろえてもいいし.
おまけ
エディタはviがありますが,emacsを入れるのが普通です.
$ sudo apt-get install emacs22-nox
UbuntuにPlaggerをさくっと入れる
さて,ここからが本番.VirtualBoxに入れたならクリーンなUbuntuが手に入りました. まぁそうでなくても問題ないです.ついでに言えばPerlのバージョンが5.8でも 5.10でも大丈夫です.次の手順でさくさくいれちゃいましょう.
Plaggerで必要なPerlライブラリをaptから入れるのは,実は「失敗」する
先にも書いた様に普通はCPANからbuildするのですが,くそめんどくさいので hansodeさんのパッケージを拝借します.
/etc/apt/source.listに以下を追加.
deb http://debian.hansode.org/ ./
ターミナルから以下を叩く.
$ sudo apt-get update
$ sudo apt-get install libplagger-perl
結果.
libplagger-perl: 依存: libencode-perl (>= 2.1) しかし、インストールすることができません
...
はい,失敗しましたねw 実はこれはDebian用なので,どうもUbuntuだと足りない ものがあるようです.しかし,大して関係ないものらしいので,ダミーパッケージで ごまかすことで強引に入れてしまいます!ここがミソね><v といっても, 以下のページをぱくっただけ!ありがとう><
ダミーパッケージでごまかす
ダミー作りのためのパッケージを入れ,ダミーパッケージを作ります. パッケージの名前とバージョンは先ほどのエラーメッセージを参考にして下さい.
$ sudo apt-get install equivs
$ cd /var/tmp
$ equivs-control libencode-perl
できあがったlibencode-perlというファイルをエディタで開き,名前とバージョンを 変更します.
Package: <package name; defaults to equivs-dummy> # Version: <enter version here; defaults to 1.0>
の部分を
Package: libencode-perl Version: 2.1
に変更.そしたら,ダミーパッケージをビルドしてインストールしちゃいます.
$ equivs-build libencode-perl
$ sudo dpkg -i libencode-perl_2.1_all.deb
これで,再度$ sudo apt-get install libplagger-perl
をやるとエラーの中から
libencode-perlが無くなっているはずです!そう,あとはエラーのパッケージの
数だけダミーインストールを繰り返すのです!
libplagger-perlがついに入る!!
すべて入れ終わって,ついに,Plaggerが入る瞬間がやってきました!
$ sudo apt-get install libplagger-perl
$ plagger -v
Plagger version 0.7.17
これで晴れてPlaggerデビューです!
SVNから最新版を入れておく
あとは,最新版のPlaggerをSVNから落としておきます.多分ですが, プラグインだけ使うならmakeしなくてもよくて,あとでYAMLファイルの プラグインパスでこれを指定すればいい気がします.僕は一応make しましたが,CPANの時みたいに色々聞かれるので,嫌な人はmakeしないで hansodeさんのPlaggerを使えばいいと思います><!
$ svn co http://svn.bulknews.net/repos/plagger/trunk/plagger
$ cd plagger
$ perl Makefile.PL
$ sudo make
Plaggerって何?
さぁついにPlaggerが使える様になりましたよ!・・・と言ったところで, Plaggerってなんなんでしょう?簡単に言えばこんなもんです.
フィードをベースにしてエントリ毎にごにょごにょできて,えいやーできる
わけわかりませんねw とりあえず適当なブログのフィードを拾ってきて, まとめてGmailに送るとかしてみればいいんじゃないかな.というわけでサンプル.
base.yaml
global: plugin_path: - /home/user/plagger/lib/Plagger/Plugin # svnで落としたプラグインの場所 # - /home/user/github/plagger/lib/Plagger/Plugin # 自分で書いたプラグインがあれば assets_path: /home/user/plagger/assets # svnで落としたassetsの場所 timezone: Asia/Tokyo log: # level: debug level: info cache: base: /home/user/rsync/cache # cacheの場所を適当に指定 define_recipes:
こちらは,これから作るYAMLファイルに共通の設定を書いておく. いちいちプラグインの場所とか指定しなくていいので楽.
rss2email.yaml
include: - /home/user/rsync/yaml/base.yaml # 上のbase.yamlの場所を指定 plugins: - module: Subscription::Config config: feed: - http://twitter.com/statuses/user_timeline/riywo.rss # 取得したいフィードのURL - module: Filter::Rule rule: module: Deduped path: /home/user/rsync/cache/plagger-rss2email.db # 一度送信したエントリを送信しない設定 # リセットするならこのファイル(とcacheフォルダ)を消す - module: Publish::Gmail config: mailto: you+plagger@gmail.com # 送り先のGmail mailfrom: you@gmail.com # 送信元にするGmail mailroute: via: smtp_tls host: smtp.gmail.com:587 username: you@gmail.com # Gmailアカウント password: ******** # そのパスワード
適当なフィードを取って来てGmailに送るための設定.試しに僕の Twitterのフィードでも読みやがれ!
いくぜ!Plagger!
さぁ,上の二つのファイルを適当なところに置いたら,いよいよ初Plaggerです! その前に注意ですが,YAMLファイルはutf-8-unixで保存しておいて下さい.もし よくわかんなければ,あらかじめ日本語の入ったコメント行は削除しておいて下さい.
ファイルの置き場所が/home/user/rsync/yaml/base.yaml, /home/user/rsync/yaml/rss2email.yamlだとします.base.yamlの場所が違えば rss2email.yamlの最初を変えて下さい.
$ plagger -c /home/user/rsync/yaml/rss2email.yaml
これで,僕のTwitterのポストがあなたのGmailに送られてくるはずです!おめでとう!
あとはこれをcronでまわすのだ!
Plaggerは手動で実行してもおもしろくありません.cronというものを使って,定期的に自動実行させてこそ, おもしろいのです.というわけで,Ubuntuのcronの設定方法.
$ crontab -e
というコマンドで設定ファイルが開けます.たしか,エディタが選べたはずなので,迷わずemacsを選びましょう. そして,以下の様な感じにします.PATH=…の部分は,ターミナルで
$ env
を実行して表示されるPATH=…の行をコピーしておきましょう.cronの実行だとパスがないとかなったりして 困るらしいので.この辺は適当にやって下さい.
PATH=/usr/local/bin:... # m h dom mon dow command */1 * * * * plagger -c /home/user/rsync/yaml/rss2email.yaml > /dev/null 2>&1
これで,1分に1度僕のTwitterのフィードをチェックして新しいポストがあればまとめてGmailしてくれるという すさまじいcronの完成ですw crontabの書き方は適当に調べて下さい.めんどくさい.ちなみに, 最後の「 > /dev/null 2>&1」は無いとダメらしいので忘れずに.
Enjoy Plagger!! 僕の作ったプラグインはgithubに置きました
というわけで,OS入れるところからcronでまわすまで駆け足で説明しました.VirtualBoxで入れたOSなら どんな状況になっても構わないでしょうから,ガンガンいじくってみましょうw
さて,僕が作ったプラグイン(人のをコピーしただけのもありますがw)はgithubに置いてます. 使い方分かる人は持って行って使って下さい.細かい使い方はまたあとでエントリにするつもりです.
-
riywo’s plagger at master — GitHub
- Publish::Tumblr
- Publish::HatenaBookmark(改造)
- Filter::TwitterQuote
- Filter::RemoveTags
- Filter::Reverse(コピー)
base.yamlのプラグインの場所が怪しげにgithubとか入ってたわけはこれですw あと,yamlとかcacheは rsyncすることで,普段走らせる自宅サーバとMacBookのVirtualBox上のサーバで同期させています. なので,rsyncとかがパスに入ってます.この辺のやり方も後日エントリにするつもりです.
あとがき
・・・,疲れた><
後日エントリにするつもり,とか書いたけど,求められないと多分書かない気がするw というわけで,読んだ方はコメントなんか頂けると励みになります><
みんなでPlagger楽しもうぜ!