2013年11月6日水曜日

2013/10/27現在のPlaggerに必要なモジュールの取得その2

次にperl moduleをインストールしていきます。
私の環境で2時間程度かかりました。
一つ一つインストールして確認しながらやっていくのも
いいのかもしれませんが私はscriptを組んで
実行後screenをデタッチして別作業を行っていました。
好みによると思いますので適宜読み直して下さい。
ここではinst02.shという名前で新規作成していきます。



--ここから--
#!/bin/bash
export CPANM_CMD=/usr/local/UserPerl/bin/cpanm
curl -L http://xrl.us/cpanm | perl - App::cpanminus
$CPANM_CMD local::lib
$CPANM_CMD -L /usr/local parent
$CPANM_CMD Test::Harness
$CPANM_CMD Module::Install
$CPANM_CMD Module::Install::AuthorTests
$CPANM_CMD HTTP::Tiny
$CPANM_CMD CPAN::DistnameInfo
$CPANM_CMD App::pmuninstall
$CPANM_CMD YAML
$CPANM_CMD XML::LibXML
$CPANM_CMD Class::Accessor
$CPANM_CMD Module::Pluggable::Fast
$CPANM_CMD UNIVERSAL::require
$CPANM_CMD XML::Liberal
$CPANM_CMD Encode::Detect
$CPANM_CMD AppConfig
$CPANM_CMD Template
$CPANM_CMD Image::Info
$CPANM_CMD Config::Simple
$CPANM_CMD XML::SAX::Expat
$CPANM_CMD XML::Simple
$CPANM_CMD Time::HiRes
$CPANM_CMD Date::Parse
$CPANM_CMD IO::AtomicFile
$CPANM_CMD Try::Tiny
$CPANM_CMD Test::Fatal
$CPANM_CMD Module::Runtime
$CPANM_CMD List::MoreUtils
$CPANM_CMD Dist::CheckConflicts
$CPANM_CMD Test::Requires
$CPANM_CMD Module::Implementation
$CPANM_CMD Params::Validate
$CPANM_CMD Package::Stash::XS
$CPANM_CMD Package::Stash
$CPANM_CMD Params::Util
$CPANM_CMD Sub::Install
$CPANM_CMD Data::OptList
$CPANM_CMD Class::Load
$CPANM_CMD Log::Dispatch
$CPANM_CMD Net::Delicious
$CPANM_CMD Digest::SHA
$CPANM_CMD Archive::Zip
$CPANM_CMD Net::Telnet
$CPANM_CMD Term::ReadKey
$CPANM_CMD Term::ReadLine
$CPANM_CMD Text::Glob
$CPANM_CMD Probe::Perl
$CPANM_CMD IPC::Run3
$CPANM_CMD Test::Script
$CPANM_CMD File::Which
$CPANM_CMD --force Term::ReadLine::Perl
$CPANM_CMD File::HomeDir
$CPANM_CMD YAML::Syck
$CPANM_CMD IO::Tty
$CPANM_CMD Expect
$CPANM_CMD IPC::Run
$CPANM_CMD Module::Signature
$CPANM_CMD Capture::Tiny
$CPANM_CMD IO::CaptureOutput
$CPANM_CMD CPAN::Version
$CPANM_CMD Test::Reporter
$CPANM_CMD File::pushd
$CPANM_CMD Devel::Autoflush
$CPANM_CMD File::Spec
$CPANM_CMD File::Temp
$CPANM_CMD Config::Tiny
$CPANM_CMD CPAN::Reporter
$CPANM_CMD Kwalify
$CPANM_CMD Pod::Simple
$CPANM_CMD Test::Pod
$CPANM_CMD Devel::Symdump
$CPANM_CMD Pod::Coverage
$CPANM_CMD Test::Pod::Coverage
$CPANM_CMD XML::NamespaceSupport
$CPANM_CMD XML::SAX::Base
$CPANM_CMD XML::SAX
$CPANM_CMD HTML::Entities::Numbered
$CPANM_CMD XML::Parser
$CPANM_CMD DBI
$CPANM_CMD RDF::Core
$CPANM_CMD XML::FOAF
$CPANM_CMD Test::Tester
$CPANM_CMD Test::NoWarnings
$CPANM_CMD Test::Deep
$CPANM_CMD Mail::Header
$CPANM_CMD MIME::Parser
$CPANM_CMD Net::SSLeay
$CPANM_CMD IO::Socket::SSL
$CPANM_CMD IO::SessionData
$CPANM_CMD Class::Inspector
$CPANM_CMD Task::Weaken
$CPANM_CMD SOAP::Lite
$CPANM_CMD XMLRPC::Lite
$CPANM_CMD Algorithm::Diff
$CPANM_CMD Text::Diff
$CPANM_CMD HTTP::Cookies::Mozilla
$CPANM_CMD DateTime::Locale
$CPANM_CMD Sub::Exporter
$CPANM_CMD Test::Output
$CPANM_CMD Class::Singleton
$CPANM_CMD DateTime::TimeZone
$CPANM_CMD DateTime
$CPANM_CMD DateTime::Format::W3CDTF
$CPANM_CMD DateTime::Format::Mail
$CPANM_CMD XML::RSS::LibXML
$CPANM_CMD WebService::Bloglines
$CPANM_CMD FCGI
$CPANM_CMD CGI
$CPANM_CMD PadWalker
$CPANM_CMD Devel::Cycle
$CPANM_CMD Test::Memory::Cycle
$CPANM_CMD Carp
$CPANM_CMD Sub::Uplevel
$CPANM_CMD File::Slurp
$CPANM_CMD Tree::DAG_Node
$CPANM_CMD Test::Warn
$CPANM_CMD Test::Taint
$CPANM_CMD Test::LongString
$CPANM_CMD HTML::TreeBuilder
$CPANM_CMD HTTP::Server::Simple
$CPANM_CMD LWP::MediaTypes
$CPANM_CMD Encode::Locale
$CPANM_CMD HTTP::Date
$CPANM_CMD IO::HTML
$CPANM_CMD HTTP::Request
$CPANM_CMD HTML::Form
$CPANM_CMD WWW::Mechanize
$CPANM_CMD Jcode
$CPANM_CMD WWW::Mixi
$CPANM_CMD XML::RSS::Liberal
$CPANM_CMD XML::XPathEngine
$CPANM_CMD HTML::TreeBuilder::XPath
$CPANM_CMD HTML::Scrubber
$CPANM_CMD Time::Duration
$CPANM_CMD Exporter::Lite
$CPANM_CMD Time::Duration::Parse
$CPANM_CMD XML::SimpleObject
$CPANM_CMD XML::OPML
$CPANM_CMD Digest::HMAC_MD5
$CPANM_CMD Net::SMTP::TLS
$CPANM_CMD Email::Date::Format
$CPANM_CMD MIME::Types
$CPANM_CMD MIME::Lite
$CPANM_CMD Spiffy
$CPANM_CMD Test::Base
$CPANM_CMD DateTime::Format::Strptime
$CPANM_CMD Error
$CPANM_CMD Digest::SHA1
$CPANM_CMD Cache::Cache
$CPANM_CMD HTML::ResolveLink
$CPANM_CMD Number::Compare
$CPANM_CMD File::Find::Rule
$CPANM_CMD Test::Manifest
$CPANM_CMD XML::RSS
$CPANM_CMD Class::ErrorHandler
$CPANM_CMD Heap::Fibonacci
$CPANM_CMD File::NFSLock
$CPANM_CMD IO::String
$CPANM_CMD Cache
$CPANM_CMD URI::Fetch
$CPANM_CMD LWP::Authen::Wsse
$CPANM_CMD Class::Data::Inheritable
$CPANM_CMD XML::XPath
$CPANM_CMD XML::Atom
$CPANM_CMD Feed::Find
$CPANM_CMD XML::Feed
$CPANM_CMD Text::Tags
$CPANM_CMD Term::Encoding
$CPANM_CMD Template::Provider::Encoding
$CPANM_CMD YAML::Base
$CPANM_CMD Template::Plugin::JavaScript
$CPANM_CMD URI::Find
$CPANM_CMD Scalar::Util
$CPANM_CMD File::Listing
$CPANM_CMD HTTP::Negotiate
$CPANM_CMD HTTP::Daemon
$CPANM_CMD Net::HTTP
$CPANM_CMD HTTP::Cookies
$CPANM_CMD WWW::RobotRules
$CPANM_CMD LWP::UserAgent
$CPANM_CMD Mozilla::CA
# LWP::Protocol::httpsはwww.apache.org:443に接続してテストするが
# サーバーのアクセスに失敗する時もある。
# モジュール自体は問題なさそうなので強制インストール
$CPANM_CMD --force LWP::Protocol::https
LANG=C $CPANM_CMD Crypt::SSLeay
$CPANM_CMD Config::INI::Simple
$CPANM_CMD ExtUtils::ParseXS
$CPANM_CMD Log::Log4perl
$CPANM_CMD Net::Amazon
$CPANM_CMD --force Regexp::Assemble
$CPANM_CMD Parse::RecDescent
$CPANM_CMD Text::Hatena
$CPANM_CMD Regexp::Common
$CPANM_CMD Data::Section::Simple
$CPANM_CMD Regexp::Common::profanity_us
$CPANM_CMD Data::TemporaryBag
$CPANM_CMD SWF::BinStream
$CPANM_CMD Font::TTF
$CPANM_CMD SWF::Builder
$CPANM_CMD Text::CharWidth
$CPANM_CMD Text::WrapI18N
$CPANM_CMD RPC::XML
$CPANM_CMD Test::Exception
$CPANM_CMD Set::Infinite
$CPANM_CMD DateTime::Set
$CPANM_CMD DateTime::Util::Calc
$CPANM_CMD DateTime::Util::Astro::Sun
$CPANM_CMD http://ftp2.ru.freebsd.org/pub/FreeBSD/distfiles/DateTime-Event-SolarTerm-0.05.tar.gz
$CPANM_CMD Math::Round
$CPANM_CMD DateTime::Event::Lunar
$CPANM_CMD DateTime::Util::Astro
$CPANM_CMD http://search.cpan.org/CPAN/authors/id/D/DM/DMAKI/DateTime-Event-Chinese-0.05.tar.gz
$CPANM_CMD http://search.cpan.org/CPAN/authors/id/D/DM/DMAKI/DateTime-Calendar-Chinese-0.07.tar.gz
$CPANM_CMD Encode
# Hatena::Keyword には2つ修正するべき箇所がある。
# 1:POD内にあるeuc-jpの"’"の除去
# 2:utf8の使用および文字引渡し時のエンコード処理
cd /root
wget http://search.cpan.org/CPAN/authors/id/N/NA/NAOYA/Hatena-Keyword-0.05.tar.gz
tar xzvf Hatena-Keyword-0.05.tar.gz
cd Hatena-Keyword-0.05/lib/Hatena/
# euc-jpなPODをUTF-8に変換します。
/usr/bin/nkf -w Keyword.pm > Keyword.pm.utf8
# 下のアポストロフィの全角を半角にするために置換します
/bin/sed -e "s/’/'/g" Keyword.pm.utf8 > Keyword.pm.utf8.sed
# 元ファイル除去
rm -f Keyword.pm
# 中間ファイル除去
rm -f Keyword.pm.utf8
mv Keyword.pm.utf8.sed Keyword.pm
cat << "EOFA" > Keyword.patch 2>&1
--- Keyword.pm  2008-02-21 12:11:59.000000000 +0900
+++ Keyword.pm.new      2013-10-19 13:53:33.197136826 +0900
@@ -7,6 +7,7 @@
 use URI;
 use RPC::XML;
 use RPC::XML::Client;
+use utf8;

 our $VERSION = 0.05;

@@ -22,6 +23,7 @@
     my $body = shift or croak sprintf 'usage %s->extract($text)', $class;
     my $args = shift || {};
     $args->{mode} = 'lite';
+    utf8::encode($body);
     my $res = $class->_call_rpc_with_cache($body, $args)
         or $class->error($class->errstr);
     my @keywords = map { $class->_instance_from_rpcdata($_) }@{$res->{wordlist}};
EOFA
patch < Keyword.patch
rm -f Keyword.patch
cd /root
rm -f Hatena-Keyword-0.05.tar.gz
tar czvf Hatena-Keyword-0.05.tar.gz Hatena-Keyword-0.05
rm -fr Hatena-Keyword-0.05
$CPANM_CMD Hatena-Keyword-0.05.tar.gz
rm -f Hatena-Keyword-0.05.tar.gz
$CPANM_CMD Exporter
$CPANM_CMD File::ShareDir
$CPANM_CMD Params::Validate
$CPANM_CMD Math::BigInt
$CPANM_CMD Math::BigInt::GMP
wget http://search.cpan.org/CPAN/authors/id/D/DM/DMAKI/DateTime-Calendar-Japanese-Era-0.08001.tar.gz
tar xzvf DateTime-Calendar-Japanese-Era-0.08001.tar.gz
cd DateTime-Calendar-Japanese-Era-0.08001
rm -fr inc/ExtUtils
cd lib/DateTime/Calendar/Japanese
cat << "EOFB" > Era.patch 2>&1
--- Era.pm.orig    2013-10-21 16:41:35.886078724 +0900
+++ Era.pm    2013-10-21 16:42:43.663065831 +0900
@@ -211,17 +211,23 @@
 #        $start_date->set_time_zone('UTC');
 #        $end_date->set_time_zone('UTC');

+        my $eraname;
+        if (Encode::is_utf8($this_era->[$NAME])){
+            $eraname = $this_era->[$NAME] ;
+        } else {
+            $eraname = Encode::decode_utf8($this_era->[$NAME]);
+        }
         if ( $opts->{is_south_regime} ) {
             push @SOUTH_REGIME_ERAS, __PACKAGE__->new(
                 id => $this_era->[$ID],
-                name => Encode::decode_utf8($this_era->[$NAME]),
+                name => $eraname,
                 start => $start_date,
                 end => $end_date,
             );
         } else {
             __PACKAGE__->register_era(
                 id    => $this_era->[$ID],
-                name  => Encode::decode_utf8($this_era->[$NAME]),
+                name  => $eraname,
                 start => $start_date,
                 end   => $end_date
             );
EOFB
patch < Era.patch
rm -f Era.patch
cd /root
rm -f DateTime-Calendar-Japanese-Era-0.08001.tar.gz
tar czvf DateTime-Calendar-Japanese-Era-0.08001.tar.gz DateTime-Calendar-Japanese-Era-0.08001
rm -fr DateTime-Calendar-Japanese-Era-0.08001
$CPANM_CMD DateTime-Calendar-Japanese-Era-0.08001.tar.gz
rm -f DateTime-Calendar-Japanese-Era-0.08001.tar.gz
$CPANM_CMD DateTime::Event::Sunrise
$CPANM_CMD DateTime::Calendar::Japanese
$CPANM_CMD Class::Factory::Util
$CPANM_CMD DateTime::Format::Builder
wget http://backpan.perl.org/authors/id/D/DM/DMAKI/DateTime-Format-Japanese-0.04000.tar.gz
tar xzvf DateTime-Format-Japanese-0.04000.tar.gz
cd DateTime-Format-Japanese-0.04000
cd lib/DateTime/Format/Japanese
cat << "EOFC" > Common.patch 2>&1
--- Common.pm.orig    2008-08-25 01:18:06.000000000 +0900
+++ Common.pm    2013-10-21 17:17:29.572062844 +0900
@@ -302,7 +302,12 @@
     }

     my $era_year = ($dt->year - $era->start->year) + 1;
-    my $era_name = Encode::decode_utf8($era->name);
+    my $era_name;
+    if (Encode::is_utf8($era->name)){
+        $era_name = $era->name;
+    } else {
+        $era_name = Encode::decode_utf8($era->name);
+    }

     return $era_name .
         _format_number($era_year, $number_format) .
EOFC
patch < Common.patch
rm -f Common.patch
cd /root
rm -f DateTime-Format-Japanese-0.04000.tar.gz
tar czvf DateTime-Format-Japanese-0.04000.tar.gz DateTime-Format-Japanese-0.04000
rm -fr DateTime-Format-Japanese-0.04000
$CPANM_CMD --force DateTime-Format-Japanese-0.04000.tar.gz
rm -f DateTime-Format-Japanese-0.04000.tar.gz
$CPANM_CMD --force XML::Feed::RSS
$CPANM_CMD Cache::FastMmap
$CPANM_CMD base
$CPANM_CMD IO::Pipely
$CPANM_CMD POE::Test::Loops
$CPANM_CMD POE
$CPANM_CMD Net::DNS
$CPANM_CMD POE::Component::Client::DNS
$CPANM_CMD Net::IP::Minimal
$CPANM_CMD ExtUtils::Constant
$CPANM_CMD Socket
$CPANM_CMD POE::Component::Resolver
$CPANM_CMD POE::Component::Client::Keepalive
$CPANM_CMD Test::POE::Server::TCP
$CPANM_CMD POE::Component::Client::HTTP
$CPANM_CMD UNIVERSAL::isa
# 下記2つはすでにcpanには無い為別のサイトから取得
$CPANM_CMD http://mirrors.gigenet.com/freebsd/distfiles/Data-Average-0.03000.tar.gz
$CPANM_CMD http://download.xs4all.nl/freebsd/ports/distfiles/Xango-1.08.tar.gz
$CPANM_CMD XML::Parser::Lite::Tree
$CPANM_CMD Flickr::API
# DateTime::Format::EpochはMath::BigInt::GMPの精度が上がったために起こる
# 問題の様子。AD100年とかを使わないので仕方なくforceInstall
$CPANM_CMD --force DateTime::Format::Epoch
$CPANM_CMD WebService::YouTube
$CPANM_CMD WWW::Babelfish
$CPANM_CMD Text::Emoticon
$CPANM_CMD Email::Address
$CPANM_CMD Lingua::StopWords
$CPANM_CMD Text::ExtractWords
$CPANM_CMD Text::Language::Guess
$CPANM_CMD Geography::Countries
$CPANM_CMD IP::Country
$CPANM_CMD File::Fetch
$CPANM_CMD Archive::Extract
$CPANM_CMD Alien::Tidyp
$CPANM_CMD HTML::Tidy
$CPANM_CMD Data::Dumper
$CPANM_CMD Test::Differences
$CPANM_CMD Text::Markdown
wget http://kakasi.namazu.org/stable/kakasi-2.3.4.tar.gz
tar zxvf kakasi-2.3.4.tar.gz
cd kakasi-2.3.4
./configure
make && make install
cd ..
rm -fr kakasi-2.3.4*
$CPANM_CMD Text::Kakasi
$CPANM_CMD NetAddr::IP
$CPANM_CMD Crypt::OpenSSL::Random
# Mail::SpamAssassin自力インストールは難しい。
# 素直にyum系からspamassassinをインストールすべし
$CPANM_CMD Mail::SpamAssassin
$CPANM_CMD Audio::Beep
$CPANM_CMD IRC::Utils
$CPANM_CMD Object::Pluggable
$CPANM_CMD POE::Component::Syndicator
$CPANM_CMD POE::Filter::IRCD
$CPANM_CMD POE::Component::IRC
$CPANM_CMD Data::Dump
$CPANM_CMD Devel::Size
$CPANM_CMD POE::Component::IKC::Client
$CPANM_CMD Net::NetSend
$CPANM_CMD Text::CSV_PP
$CPANM_CMD OLE::Storage_Lite
$CPANM_CMD Spreadsheet::WriteExcel
$CPANM_CMD Mail::IMAPClient
# Net::MovableTypeはテストに使われるサーバに
# 接続できないためエラーとなるのでうまく行かない可能性もあるがforce
$CPANM_CMD --force Net::MovableType
$CPANM_CMD XML::Twig
$CPANM_CMD PDF::Writer
$CPANM_CMD Image::Size
$CPANM_CMD Module::Loaded
$CPANM_CMD Graphics::ColorNames
$CPANM_CMD PDF::API2
$CPANM_CMD PDF::FromHTML
$CPANM_CMD Palm::PalmDoc
$CPANM_CMD Data::Serializer
$CPANM_CMD DateTime::Format::ICal
$CPANM_CMD DateTime::Event::Recurrence
$CPANM_CMD DateTime::Event::ICal
$CPANM_CMD Devel::StackTrace
$CPANM_CMD Class::ReturnValue
$CPANM_CMD Class::Accessor::Chained
$CPANM_CMD Text::vFile::asData
$CPANM_CMD Data::ICal
# Search::EstraierはTestPodで引っかかってる様子
# 他テストで問題無いことからforce
$CPANM_CMD --force Search::Estraier
$CPANM_CMD File::Grep
$CPANM_CMD Lingua::Stem::Snowball
$CPANM_CMD common::sense
$CPANM_CMD JSON::XS
$CPANM_CMD KinoSearch
# DBIx::Class::Schemaはここまでインストールしてきた
# モジュール以外の33のモジュールを必要とする。
# しかしここまで来ていれば全てのモジュールを正常に
# インストールできる事から省略する。
$CPANM_CMD DBIx::Class::Schema
$CPANM_CMD Text::Sentence
$CPANM_CMD Lingua::EN::Summarize
$CPANM_CMD Text::Original
$CPANM_CMD Lingua::JA::Summarize::Extract
$CPANM_CMD Font::AFM
$CPANM_CMD HTML::FormatText
$CPANM_CMD Lingua::ZH::HanDetect
$CPANM_CMD Plagger
$CPANM_CMD Mouse
$CPANM_CMD Log::Minimal
$CPANM_CMD OrePAN
--ここまで--

このBloggerは変な所で折り返しがついてしまいます。
長い所は変な改行などが残ってないか確認して下さい。

この状態で既にPlaggerの実行は可能です。
ただしassetsを用意しないと正常な動作はしません。
長かったので次回実行に移ります

0 件のコメント:

コメントを投稿

Windows10 1803の再インストールした時のメモ

今日はちょっとしたメモを残そうと思って書き込みしています。 事の発端は大きいファイルを整理している最中にエラーが頻発した事から始まります。