Plagger インストール

MacOSX 10.4.7, perl 5.8.6 の環境で、perl に関してはほとんど何もしてない状態からスタート。

手順は、

  1. test Plagger で依存する CPAN モジュールのチェック・インストール
  2. install PlaggerPlagger のインストール
  3. subversion repository から assets をチェックアウト
  4. Plagger の設定

の順でやってみた。

1. test Plagger で依存する CPAN モジュールのチェック・インストール

まずは、test Plagger

$ sudo cpan
cpan> test Plagger

[Core Features]
- Test::More                   ...loaded. (0.64 >= 0.42)
- Test::Base                   ...loaded. (0.52 >= 0.52)
- Class::Accessor::Fast        ...missing.
- File::Find::Rule             ...missing.
- UNIVERSAL::require           ...missing. (would need 0.1)
- Template                     ...missing. (would need 2.13)
- Template::Provider::Encoding ...missing. (would need 0.04)
- YAML                         ...loaded. (0.62 >= 0.39)
- Text::Tags                   ...missing.
- DateTime                     ...missing. (would need 0.29)
- DateTime::Format::Mail       ...missing.
- DateTime::Format::W3CDTF     ...missing.
- DateTime::Format::Strptime   ...missing.
- Digest::MD5                  ...loaded. (2.33)
- LWP                          ...missing.
- HTML::Parser                 ...missing. (would need 3.48)
- URI::Fetch                   ...missing. (would need 0.071)
- Cache::Cache                 ...missing. (would need 1.04)
- Module::Pluggable::Fast      ...missing.
- HTML::ResolveLink            ...missing.
- Date::Parse                  ...missing.
- MIME::Types                  ...missing. (would need 1.16)
- Net::DNS                     ...missing.
- XML::Feed                    ...missing. (would need 0.09)
- XML::LibXML                  ...missing.
- XML::Atom                    ...missing. (would need 0.19)
- XML::RSS::LibXML             ...missing. (would need 0.2)
- Encode                       ...missing. (would need 2.1)
- Term::Encoding               ...missing.

とこんな感じで、足りないモジュールが結構あった。で、このまま test Plagger を続けて、自動的に必要なモジュールをインストールできるみたいなんだけど、うまくインストールできないこともあったので、ある程度までは手で入れていった。ひとまず上から順に、

$ sudo cpan
cpan> install Class::Accessor::Fast

という感じでインストール。

  • Class::Accessor::Fast
  • File::Find::Rule
  • UNIVERSAL::require
  • Template
  • Template::Provider::Encoding
  • Text::Tags

までは問題なくインストールできた。で、DateTime を入れる前に、

  • DateTime::TimeZone
  • Module::Build

をインストールして、Module::Signature の前に

  • gnupg のインストール (これはいらないかもしれないなぁ)
$ sudo fink install gnupg

した。その後

  • Module::Signature
  • DateTime
  • DateTime::Format::Mail
  • DateTime::Format::W3CDTF
  • DateTime::Format::Strptime

そして、LWPの前に、

  • HTML::Tagset
  • LWP
  • HTML::Parser

で、URI::Fetch の前に(この辺はいらないかもなぁ)

  • Heap::Fibonacci
  • Date::Parse
  • File::NFSLock

Cache:Cache の前に、

  • Error

なんだけど、

t/08warndie..........................NOK 9                                   
#   Failed test 'die ?n-terminated exit code'
#   in t/08warndie.t at line 114.
#          got: '5'
#     expected: '3'
t/08warndie..........................NOK 11                                  
#   Failed test 'die unterminated exit code'
#   in t/08warndie.t at line 135.
#          got: '5'
#     expected: '3'
t/08warndie..........................NOK 13                                  
#   Failed test 'Error exit code'
#   in t/08warndie.t at line 156.
#          got: '5'
#     expected: '3'
t/08warndie..........................NOK 21                                  
#   Failed test 'Custom die exit code'
#   in t/08warndie.t at line 215.
#          got: '5'
#     expected: '3'
# Looks like you failed 4 tests of 21.
t/08warndie..........................dubious                                 
        Test returned status 4 (wstat 1024, 0x400)
DIED. FAILED tests 9, 11, 13, 21
        Failed 4/21 tests, 80.95% okay
Failed Test   Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/08warndie.t    4  1024    21    4  19.05%  9 11 13 21
Failed 1/8 test scripts, 87.50% okay. 4/42 subtests failed, 90.48% okay.
make: *** [test_dynamic] Error 2
  /usr/bin/make test -- NOT OK
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
  SHLOMIF/Error-0.17.tar.gz                    : make_test NO

って言われてしまう。ここはひとまず force install した。

cpan> force install Error

その後、

  • Cache::Cache
  • Module::Pluggable::Fast
  • HTML::ResolveLink
  • Date::Parse
  • MIME::Types
  • Net::DNS

を入れて、XML::Feed の前に、expat のインストール(XML::Parser に必要?)

$ sudo fink instal expat

で、そのあと、XML::Parser を入れて(expat の場所を指定)

$ sudo cpan
$ look XML::Parser
# perl Makefile.PL EXPATLIBPATH=/sw/lib EXPATINCPATH=/sw/include
# make 
# make test
# make install
# exit

と入れるとひとまずうまくいった。これで、Plagger が Core Features と言っているもの(余計なものも入ってるかもしれない)のインストールが終わる。で、改めて test Plagger すると、Encode::Detect を勧められて、これを入れるには、先に

  • Encode::Detect
  • ExtUtils::ParseXS
  • Data/Dump.pm
  • XML::SimpleObject
  • Net::SSLeay
  • IO::Socket::SSL
  • XML::XPathEngine
  • HTML::TreeBuilder
  • Exporter::Lite
  • Time::Duration
  • Time::Duration::Parse

が入ってないとダメみたい。

これで、test Plagger が通る。最初は結構大変だったけど、要領が分かっていると案外すんなりいったなぁ。

2. install PlaggerPlagger のインストール

ここまでくればあとは簡単。

$ sudo cpan
cpan> install Plagger

Plagger のインストールは終わり。

3. subversion repository から assets をチェックアウト

次に、Plaggersubversion repository から plugin などをチェックアウトする。

$ cd /Users/truego
$ svn co http://svn.bulknews.net/repos/plagger/trunk/plagger/assets plagger-assets

4. Plagger の設定

次に Plagger の設定をする。/usr/bin/config.yaml に設定ファイルを作る。global: assets_path は repository から取ってきたものの場所を指定する。
以下は、http://d.hatena.ne.jp/truego/rss にある feed を取ってきて、携帯で読めるように/tmp にCHTMLにして出力するという設定。

global:
   assets_path: /Users/truego/plagger-assets
   timezone: Asia/Tokyo

plugins:
   - module: Subscription::Config
     config:
       feed:
         - url: http://d.hatena.ne.jp/truego/rss

   - module: Filter::EntryFullText
     config:
        store_html_on_failure: 1

   - module: Publish::CHTML
     config:
       title: Hatena::truego
       work: /tmp/

5. Plagger の実行

設定ができれば、

$ plagger

Plagger が実行される。さっきの設定ファイルだと、/tmp/に

$ ls -ltar /tmp/
-rw-r--r--    1 truego    wheel     361 Jul 28 11:51 1154055114.html

こんな感じで、CHTML ができる。