さくらインターネットのサーバに Plagger をインストールしたときのメモ

ふと思い立って Plagger を入れてみた。
かなり苦戦したけれど、先人の記録をたどりつつ何とか自分でもインストールすることができた。Web 上に情報を残してくれている皆さま、ありがとうございます。

自分用の覚書

iandeth. - 一般ユーザ環境におけるCPANモジュールの使い方

http://iandeth.dyndns.org/mt/ian/archives/000623.html

ここを見ながら、設定をする。

mkdir -p .cpan/CPAN

mkdir というコマンドはディレクトリを作るものだというのはわかったけど、 -p というオプションは何だろう?と疑問に思ったので調べる。

3.5 新しいディレクトリの作成 mkdir

http://cns-guide.sfc.keio.ac.jp/2001/3/3/5.html

階層になっているディレクトリを一気に作成することができる、ということがわかった。なるほど。

Plagger をインストールする

test Plagger してみるが、モジュールがインストールできないものがあるみたいだ。

Test Summary Report
-------------------
t/00_compile.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  1 wallclock secs ( 0.00 usr  0.03 sys +  0.24 cusr  0.33 csys =  0.60 CPU)
Result: FAIL
Failed 1/1 test programs. 1/1 subtests failed.
*** Error code 1

Stop in /home/USERNAME/.cpan/build/Plagger-0.7.17-olsW7j.
  MIYAGAWA/Plagger-0.7.17.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports MIYAGAWA/Plagger-0.7.17.tar.gz
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
 MIYAGAWA/XML-Liberal-0.22.tar.gz             : make_test NO
 DMAKI/XML-RSS-Liberal-0.03.tar.gz            : make_test NO
 MIYAGAWA/WebService-Bloglines-0.12.tar.gz    : make_test NO one dependency not OK (XML::Liberal)
 MIYAGAWA/Plagger-0.7.17.tar.gz               : make_test NO


いくつか force install してみたが、まだ下記のエラーがでる。

Test Summary Report
-------------------
t/00_compile.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  1 wallclock secs ( 0.02 usr  0.03 sys +  0.27 cusr  0.38 csys =  0.70 CPU)
Result: FAIL
Failed 1/1 test programs. 1/1 subtests failed.
*** Error code 1

Stop in /home/USERNAME/.cpan/build/Plagger-0.7.17-olsW7j.
  MIYAGAWA/Plagger-0.7.17.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports MIYAGAWA/Plagger-0.7.17.tar.gz
Failed during this command:
 MIYAGAWA/Plagger-0.7.17.tar.gz               : make_test NO

モジュールがエラーになっているわけではない、のかな?
ではどうすればいいのか分からなくて、しばし途方にくれる。

Perlモジュールのインストール時にmakeエラーがきたとき: m6 BLOG

http://ugawalab.miyakyo-u.ac.jp/m6/fukuchi/blog/2008/11/perlmakefile.html

↑これの解決策 2 が当てはまるかと思ったが、さくらのサーバでは sudo ができないので
何か別の設定が必要のような気がする。


さらに調べていたら、解決策がわかった。
エラーは出ていないけれど、 XML::FEED::RSS というモジュールを少し古いものに入れなおすとよいらしい。

UbuntuPlaggerを入れる際にトラブった - 超メモ帳(Web式)

http://d.hatena.ne.jp/yuki_2021/20090119/1232326390

結局、XML::FEED::RSSは0.3じゃなくて、0.23を使えば動いた。

http://d.hatena.ne.jp/a2c/20081120/1227189371

古いモジュールを入れる方法も調べた。

cpan[1]> m Test::Declare
Module id = Test::Declare
    CPAN_USERID  NEKOKAK (Atsushi Kobayashi <nekokak cpan org>)
    CPAN_VERSION 0.04
    CPAN_FILE    N/NE/NEKOKAK/Test-Declare-0.04.tar.gz
    UPLOAD_DATE  2009-04-09
    INST_FILE    (not installed)

cpan[2]> install NEKOKAK/Test-Declare-0.03.tar.gz

m コマンドでモジュールの場所を調べてバージョン番号の部分を変えて指定すれば、通常の最新版と同様に自動インストールできます。

CPAN モジュールをバージョン指定でインストールする方法 - Craftworks Tech Blog - Branch

http://d.hatena.ne.jp/Craftworks/20090415/1239782756

なるほどなるほど。それではさっそく m XML::Feed といきましょう。

cpan[5]> m XML::Feed                                             
Module id = XML::Feed
    CPAN_USERID  SIMONW (Simon Wistow <simonw@cpan.org>)
    CPAN_VERSION 0.43
    CPAN_FILE    S/SI/SIMONW/XML-Feed-0.43.tar.gz
    UPLOAD_DATE  2009-05-07
    MANPAGE      XML::Feed - Syndication feed parser and auto-discovery
    INST_FILE    /home/USERNAME/local/lib/perl5/XML/Feed.pm
    INST_VERSION 0.43

現在入っているのは 0.43 だったので、あらためて 0.23 を入れることに。

cpan[7]> force install SIMONW/XML-Feed-0.23.tar.gz

↑force をつけずにやったらダメだったので force を忘れずに

All tests successful.
Files=1, Tests=1,  1 wallclock secs ( 0.02 usr  0.02 sys +  0.24 cusr  0.32 csys =  0.61 CPU)
Result: PASS
  MIYAGAWA/Plagger-0.7.17.tar.gz
Tests succeeded but one dependency not OK (Module::Pluggable::Fast)
  MIYAGAWA/Plagger-0.7.17.tar.gz
  [dependencies] -- NA
Failed during this command:
 MIYAGAWA/Plagger-0.7.17.tar.gz               : make_test NO one dependency not OK (Module::Pluggable::Fast)

そしたら今度は Module::Pluggable::Fast というモジュールがエラーになっているとのこと。あらあら。でもこれも検索したら情報があった。

Module::Pluggable::Fastが入らない件 - コードで気楽な日々を

http://d.hatena.ne.jp/hao_yayoi/20091202/1259762635

こちらを参考にして下記のようにコマンドを入力すると無事インストールできた。

%cpan MRAMBERG/Module-Pluggable-Fast-0.16.tar.gz

そして、再度 install Plagger すると、インストールできた!

インストール後の確認

無事インストールできたはずだけど、下記のコマンドを入力しても「そんなコマンドないですよ」と言われてしまう。

%plagger -v
plagger: Command not found.

同じような状況になった人の例を参考にすると、どうやら PATH が通っていないという話のようだ。

plagger -v がcommandとして認識されてない。ぐぐっても特に出てこないから参った。 思いっきり詰まった感じなので、wassrとかtwitterでぐちってたとこ、id:otsune氏から「PATHが通っている場所にインストールされていないとそうなる」、とのことだったので、

http://d.hatena.ne.jp/hao_yayoi/20080517/1211031895

PATH については先日実家で兄から教えてもらったけれど、自分はまだ十分に理解しているとは言い難い。

◇"パスが通っている"とは?◇初心者のためのLinuxサーバー構築講座☆お便利.com☆

http://www.obenri.com/_operation/path_through.html

どこに PATH が通っているのかを確認するコマンドは

%printenv PATH

だった。
環境変数の環境(environment)から来ているのだなと思いつつ入力する。

%printenv PATH
/home/USERNAME/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/USERNAME/bin

上記のディレクトリには PATH が通っている、ということなの?そうだよね。
読みやすく改行して記述したものが以下。

/home/USERNAME/local/bin:
/sbin:
/bin:
/usr/sbin:
/usr/bin:
/usr/local/sbin:
/usr/local/bin:
/home/USERNAME/bin

で、Plagger がインストールされているのは下記。

/home/USERNAME/local/bin/plagger ←

これ(/home/USERNAME/local/bin/)って PATH が通っているディレクトリ、ではないのかな?

  • PATH が通っているディレクトリに Plagger がインストールされている
  • それならば、そのまま plagger -v と入力しても OK

と理解していたのだけれど、何か違うみたい。


Plagger を動かすのは Perl で、Perl に関係している PATH と、

%printenv PATH

で表示される環境変数 PATH とは別ということなのかな。
よくわかっていないけれど、下記のように入力したら無事インストールできていることが確認できたのでよし!
細かいことはひとまずおいておくことにする。

%~/local/bin/plagger -v
Plagger version 0.7.17