さくらインターネットのサーバに 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 というモジュールを少し古いものに入れなおすとよいらしい。
UbuntuにPlaggerを入れる際にトラブった - 超メモ帳(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.gzm コマンドでモジュールの場所を調べてバージョン番号の部分を変えて指定すれば、通常の最新版と同様に自動インストールできます。
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 が通っているディレクトリ、ではないのかな?
と理解していたのだけれど、何か違うみたい。
Plagger を動かすのは Perl で、Perl に関係している PATH と、
%printenv PATH
で表示される環境変数 PATH とは別ということなのかな。
よくわかっていないけれど、下記のように入力したら無事インストールできていることが確認できたのでよし!
細かいことはひとまずおいておくことにする。
%~/local/bin/plagger -v Plagger version 0.7.17