2022年実施版 Plaggerインストールメモ
CentOS7で実施、今は普通のCPANじゃなくてよりいいものがありそうではあるんですが、試してないので旧来の方法で。
必要そうなモジュールをインストール(初回)
yum -y install cpan perl-YAML.noarch openssl-devel expat-devel db4-devel libxml2-devel perl gcc make perl-XML-LibXML perl-DateTime perl-XML-RSS perl-File-Find-Rule perl-LWP-Protocol-https
CPANを最新化
初回起動時に色々聞かれたら「y」で取り合えず問題なし
cpan install CPAN exit
Plaggerのインストール環境チェック
cpan test Plagger
不足モジュール表示(1回目)
make_test NO 10 dependencies missing (HTML::TreeBuilder,DateTime::Format::Strptime,XML::RSS::LibXML,XML::RSS::Liberal,HTML::TreeBuilder::XPath,XML::Feed,HTML::FormatText,WebService::Bloglines,XML::Atom,XML::Liberal); additionally test harness failed
不足モジュールが表示されたらWebで「CentOS XXXX::XXXX(不足モジュールの名前)」とかで検索すると対応するRPM名が見つかったりするのでそれをyumでインストールしていく。
不足モジュールインストール(1回目)
yum -y install perl-DateTime-Format-Strptime perl-XML-RSS-LibXML perl-XML-Feed perl-XML-Atom
再度、test plagger
不足モジュール表示(2回目)
(HTML::TreeBuilder,XML::RSS::Liberal,HTML::TreeBuilder::XPath,HTML::FormatText,WebService::Bloglines,XML::Liberal); additionally test harness failed
不足モジュールインストール(2回目)
yum install perl-HTML-Tree
再度、test plagger
不足モジュール表示(3回目)
make_test NO 3 dependencies missing (XML::RSS::Liberal,WebService::Bloglines,XML::Liberal); additionally test harness failed
不足モジュールインストール(3回目 forceで強制あり)
RPMで解決しないもの、CPAN上のインストールですむものをインストールする
install Text::Tags::Parser force install XML::Liberal force install XML::Feed::RSS
再度、test plagger
OKなら
install Plagger
だめならこれもforce付きで実施。
いざPlagger -Vで確認!
エラー無くバージョンが表示されたらOK。
Can't locate XXXX/XXXX.pm in @INC (@INC contains: ...
と出たら必要なPerlのモジュールが不足しているのでCPANで
install XXXX:XXXX
でインストールして再度Plaggerの起動を試す。
YAMLファイル記載例
global: # Make plagger more verbose than default assets_path: /path/to/assets ←assetsへのパスを書く log: level: debug plugins: # Subscribe to a couple of "My Feeds" on the web # They could be either Feeds URL or Blog URL (with Auto-Discovery support) - module: Subscription::OPML config: url: http://path/to/opml.php ←opmlファイルへのへのパスを書く - module: SmartFeed::All rule: module: Fresh duration: 120 ←直近2時間までの記事のみ対象とする - module: Publish::Feed rule: expression: $args->{feed}->id eq 'smartfeed:all' config: dir: /path/to/rss_output_dir ←RSSファイルの出力先ディレクトリ format : RSS filename: rss_file_name ←出力するRSSのファイルの名前
yamlを書いたら、
plagger -c 上記で作成したなんとか.yaml で実行
Cronで実行するとCan’t locate XXXX/XXXX.pm in @INC (@INC contains: とか出る場合
CPANで各種ライブラリをインストールすると、「実行したユーザー」のhomeディレクトリ配下にインストールされてしまいます。
そのため、Cronを以下の様に記述します。
記載例
@hourly PERL5LIB=/CPANをインストールしたユーザー/perl5/lib/perl5 plagger -c /path/to/hoge.yaml