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 うまく上がらなかったら install Bundle::CPAN
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
不足モジュール表示(※2025/06/14追加)
5 dependencies missing (Template,Template::Provider::Encoding,WebService::Bloglines,XML::Liberal,XML::RSS::Liberal); additionally test harness failed
不足モジュールインストール(Template,Template::Provider::Encodingの分)
yum install perl-Template-Toolkit
再度、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
