インストールがむずかしいことで評判の「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楽しもうぜ!
- Newer: Dropboxをサーバ版Ubuntuでも見える様にSubversion使うよ
- Older: 名古屋でTwitterオフやってきました
コメント:1
- Free Iphone 12-02-02 (木) 8:04
-
In all honesty, I just will not confidence this approach in case another person shared with this particular opinion. I don’t think throughout cost-free products. Check this web site, you have not a single thing in order to drop assume others! http://bit.ly/ooe6us ..
トラックバック:2
- このエントリーのトラックバックURL
- http://blog.riywo.com/2009/01/07/013239/trackback
- Listed below are links to weblogs that reference
- UbuntuでPlaggerやるならこれでいけ!〜VirtualBoxからcronまで〜 from As a Futurist...
- trackback from As a Futurist... 09-01-08 (木) 21:51
-
Plagger使ってTwitterのFavやふぁぼったーをTumblrに流すプラグイン作ったよ
前回,わざわざログインしてFavを取るやつ を書きましたが,あんなことしなくても 普通にFavのフィード取れることが分かったので,さくっと作り直しました. これを使えば... - pingback from Taraco-sell’s 2DIE | Like a Merlion 09-06-16 (火) 23:50
-
[...] laggerやるならこれでいけ!〜VirtualBoxからcronまで〜 – As a Futurist… blog.riywo.com/2009/01/07/013239 [...]

