ラベル plagger の投稿を表示しています。 すべての投稿を表示
ラベル plagger の投稿を表示しています。 すべての投稿を表示

2008年1月29日火曜日

さくらサーバとPlaggerインストール

初めてのFreeBSD、、ちなみに"さくらのレンタルサーバ"(月々¥500、1GB、その他サービス込み)はお得と思う。

で、Plaggerのインストール。

これを済ませておけば、後々遠隔(cronの機能とかで)自動RSS or メール配信が可能になるから。

まずはここからスタート。


【手順】
さくらサーバのユーザ領域では、やりたい放題できないようだが、やり方は迂回してで何通りかあるらしい(subversion とかBSDPANなど?他の情報はこちら)。


自分の場合は慣れたCPAN経由で実行。

  1. MyConfig.pmの修正
  2. CPANのインストール 
  3. Plaggerのインストール

先に挙げたサイト通りにつまづくところ(※)もありで、半日くらいかかった。


【※自分の嵌ったポイント】

・FreeBSDは"UTF-8"では起動時にコマンドエラーが発生した、"EUC"で修正対象ファイルを上書きしたら治った。

下記は参照URLを見ながら順に解決。
・ Template が入らない
・ DateTime::TimeZone、DateTime::Format::Mail が入らない
・ Encode::Detect が入らない

「Module::Build が古いのが原因でオプションが認識されない」の部分は巧妙で、ここで先に"Build.PL"を自力インストールしておくと、つまづいた箇所が解決することがあった。
(今回はXML::Feedの一部でインストールできなかったところが、この過程ですっきりした。)


・全モジュールのインストール後、Plagger -v でplaggerの起動を確認したら、「Not Found Command」が表示された。

→これは調べても検索されず、ローカルで起動させたように強引に"plagger.bat","plagger.pm"をコピーして適当なディレクトリに収めたら、正常に反応するようになった。
ただ、そのままコピペではなくPerlのバージョンにあわせた修正を施すのも必要だった。

"plagger.bat"
/home/(user)/local/bin

"plagger.pm"
/home/(user)/local/lib/perl5/Plaggerへ
以上で、plagger -v でバージョン表示OKでした。


~追記~


"plagger.pm"のエラーに

Can't locate Plagger.pm in @INC (@INC contains: /home/~

とか

Can't find package from /home/(ユーザ名)/local/lib/perl5/Plagger/Plugin/Plagger.pm at /home/(ユーザ名)/local/lib/perl5/Plagger.pm line 180.

とか出たら環境変数の設定(参照)、plagger.pmファイルの格納アドレス、plagger.pmファイルの文字コード(自分の場合はEUC-JP)を突き合わせてみる必要がありました。
(自分もplagger.pmファイルは/home/(ユーザ名)/local/lib/perl5 へ置くことに)

環境変数を修正後は
source ~/.cshrcで環境変数読み込み、Plaggerの起動確認をします。

2008年1月18日金曜日

plaggerとケータイ

ここ
①http://www.area51.gr.jp/~rin/diary/?date=20060920#p05
と、
ここ
②http://d.hatena.ne.jp/s_nobu/20060905/1157451726


を参照しながらケータイにplaggerでRSS配信できるかチェック。

まず①URLで流れを確認。

次に②で「Publish::Iso_2022_jp_mail」と「Filter::FormatText」をそれぞれコピペ。

それぞれ
 
 ・C:\Perl\site\lib\Plagger\Plugin\Publish\Iso_2022_jp_mail.pm
 ・C:\Perl\site\lib\Plagger\Plugin\Filter\FormatText.pm
 
のファイル名にして配置。

次に、config.weather.yamlを自分用(mailto:部)に修正。。

実行。

HTML::WikiConverter欠け→CPAN起動で補填
Jcode欠け→(同上)

再び実行。

Can't use string ("Filter::FormatText") as a HASH ref while "strict refs" in use at ~Plagger.pm line 199, line 855.

のエラー発生

MovableTypeサポートで同様なメッセージの際は、アクセス権限を設定とかある。

HASHの扱いならこのように配列自体を直すとのこと。

(以下、日を改め)

Hashの扱いではなく、"use strict;"の指摘箇所を直せば良さそう。
参照

で、ソースを確かめてみる。。
エラーに対しては、
no strict 'refs';を追加・修正すれば良いらしい。
ただ、いじっていたらエラーが"
varsrefssubs"でコロコロ変わるもんだから、いっそここはno strict;を仮置き。。

sub autoload_plugin {
no strict;
my($self, $plugin) = @_;
unless ($self->is_loaded($plugin->{module})) {
$self->load_plugin($plugin);
}
}

先のエラーのとおり「
Plagger.pm line 199」の箇所は解けたのだけれど、今度はline 224で発生。
同様に処理。

次は、Can't locate Plageer/Plugin/.pm in @INC~ line 234とのこと。
no strict;をline 224前後に加えたことで、load_pliginサブルーチン内で引っかかってしまったのかも。

"Filter::FormatText"を直す必要あり?

(以下、さらに日を改め)

修正中。。。

2008年1月14日月曜日

PlaggerとYAMLファイルのディレクトリ

plaggerとYAMLのファイル格納先に関する情報が足りない気がしたので備忘録。


◇「config.yamlの中身」 ←C:\Perlに格納

global:
plugin_path:
- C:\Perl\site\lib\Plagger\Plugin (←pluginディレクトリアドレス)
assets_path: C:\Perl\site\lib\Plagger\assets (←assetsディレクトリアドレス)
timezone: Asia/Tokyo
cache:
base: C:\
log:
level: info


◇「hello.yaml」の中身 ←C:\Perl\site\lib\Plagger\Pluginに格納

plugins:
- module: CustomFeed::Debug
config:
title: 'Example Blog'
link: 'http://www.example.com/'
entry:
- title: 'Hello'
link: 'http://www.example.com/hello.html'
body: 'Hello, world!'

- module: Publish::OutlineText
config:
filename: C:\perl\hello.txt (←出力先、ここではテキストファイル形式で)
encoding: Shift_JIS


◇「出力結果」

コマンドプロンプトにてワークディレクトリまで移動して、
plagger -c hello.yaml

で、Plagger[info] plugin ~~ loadedのメッセージが複数出現する。
(ここで"plagger::Plugin::Publish::OutlineText [fatal] /~~~: No such file or dictinary at line 47"のようなエラーがあれば、YAMLファイルの格納先が違っている可能性があります。)

で、無事通過したら、

type C:\perl\hello.txt (←先程指定した出力先のファイルを記述)


.Example Blog
..Hello
Hello, world!

が、表示されるのでした。。

以上、module: CustomFeed::Debugとmodule: Publish::OutlineTextのどの部分が出力対象になるか確認。

Blogger Syntax Highliter