UJP - 技術情報1

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

CPANで全モジュールのアップグレードを行う

CPANで全モジュールのアップグレードを行う


0.改訂履歴

  • 2008.08.04 新規作成

1.はじめに

 このドキュメントでは,CPANで管理しているモジュールの,バージョンアップを一気に行う手順を説明する.

 まずはFTPサイトから02packages.details.txt.gzファイルを取り出し,ローカルのデータベースと自動的に付き合わせてバージョンアップが必要なモジュールの一覧を取り出す. その上で,モジュールを一度にバージョンアップする.

 利用しているOSは,CentOS 5 .1で,今回の作業前に,CPANの基本的な設定と,bundle::installは行って完了している.

 なお,全てバージョンアップするのが正しい訳ではない. 特に稼働中のシステムの場合は,テスト環境にて十分な動作検証を行った上で実施する.


2.更新が必要なモジュール一覧を取得

  • 更新が必要なモジュールの一覧を取得する.
[root@ujpadmin shinnai]# perl -MCPAN -e 'CPAN::Shell->r'
CPAN: File::HomeDir loaded ok (v0.80)
CPAN: Storable loaded ok (v2.15)
Going to read /root/.cpan/Metadata
Database was generated on Fri, 11 Jul 2008 05:03:08 GMT
CPAN: LWP::UserAgent loaded ok (v2.033)
CPAN: Time::HiRes loaded ok (v1.86)
Fetching with LWP:
ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz
CPAN: YAML loaded ok (v0.66)
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok (v2.011)
............................................................................DONE
Fetching with LWP:
ftp://ftp.kddilabs.jp/CPAN/modules/02packages.details.txt.gz
Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Mon, 04 Aug 2008 04:02:48 GMT
............................................................................DONE
Fetching with LWP:
ftp://ftp.kddilabs.jp/CPAN/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
............................................................................DONE
Going to write /root/.cpan/Metadata

Package namespace installed latest in CPAN file
Apache2::Reload 0.09 0.10 PHRED/Apache-Reload-0.10.tar.gz
Apache::Test 1.27 1.30 PHRED/Apache-Test-1.30.tar.gz
App::Prove 3.12 3.13 ANDYA/Test-Harness-3.13.tar.gz
AutoLoader 5.60 5.66 SMUELLER/AutoLoader-5.66.tar.gz
B 1.09_01 1.17 RGARCIA/perl-5.10.0.tar.gz
B::Debug 1.02_01 1.11 RURBAN/B-Debug-1.11.tar.gz
B::Lint 1.03 1.11 JJORE/B-Lint-1.11.tar.gz
BSD::Resource 1.28 1.2901 JHI/BSD-Resource-1.2901.tar.gz
CGI 3.15 3.39 LDS/CGI.pm-3.39.tar.gz
CGI::Carp 1.29 1.30 LDS/CGI.pm-3.34.tar.gz
Compress::Raw::Zlib 2.011 2.012 PMQS/Compress-Raw-Zlib-2.012.tar.
gz
Compress::Zlib 2.011 2.012 PMQS/Compress-Zlib-2.012.tar.gz
DBD::Gofer 0.011377 0.011565 TIMB/DBI-1.607.tar.gz
DB_File 1.814 1.817 PMQS/DB_File-1.817.tar.gz
Devel::PPPort 3.06_01 3.14 MHX/Devel-PPPort-3.14.tar.gz
Digest 1.14 1.15 GAAS/Digest-1.15.tar.gz
Encode 2.12 2.26 DANKOGAI/Encode-2.26.tar.gz
Errno 1.09_01 1.10 GBARR/Errno-1.10.tar.gz
Exporter 5.58 5.63 FERREIRA/Exporter-5.63.tar.gz
ExtUtils::Command 1.13 1.14 RKOBES/ExtUtils-Command-1.14.tar.
gz
ExtUtils::Install 1.45 1.50 YVES/ExtUtils-Install-1.50.tar.gz
ExtUtils::Manifest 1.51 1.54 RKOBES/ExtUtils-Manifest-1.54.tar.
gz
Fatal 1.03 1.99 PJF/autodie-1.99.tar.gz
File::Listing 1.15 5.814 GAAS/libwww-perl-5.814.tar.gz
File::Path 1.08 2.04 DLAND/File-Path-2.04.tar.gz
Filter::Util::Call 1.0601 1.07 PMQS/Filter-1.34.tar.gz
Getopt::Long 2.35 2.37 JV/Getopt-Long-2.37.tar.gz
HTML::Parser 3.55 3.56 GAAS/HTML-Parser-3.56.tar.gz
HTML::Tagset 3.10 3.20 PETDANCE/HTML-Tagset-3.20.tar.gz
IO 1.22 1.23 GBARR/IO-1.2301.tar.gz
IO::Compress::Adapter::Deflate 2.011 2.012 PMQS/IO-Compress-Zlib-2.012.
tar.gz
IO::Compress::Base 2.011 2.012 PMQS/IO-Compress-Base-2.012.tar.
gz
IO::Socket::INET6 2.51 2.54 SHLOMIF/IO-Socket-INET6-2.54.tar.
gz
IO::Socket::SSL 1.01 1.14 SULLR/IO-Socket-SSL-1.14.tar.gz
IPC::Msg 1.02 2.00 MHX/IPC-SysV-2.00.tar.gz
Locale::Maketext 1.09 1.13 FERREIRA/Locale-Maketext-1.13.tar.
gz
Mail::SpamAssassin 3.001009 3.002005 JMASON/Mail-SpamAssassin-3.2.5.
tar.gz
Math::BigFloat 1.51 1.60 TELS/math/Math-BigInt-1.89.tar.gz
Math::BigRat 0.15 0.22 TELS/math/Math-BigRat-0.22.tar.gz
Math::Complex 1.35 1.54 JHI/Math-Complex-1.54.tar.gz
ModPerl::MethodLookup undef 0.009 GOZER/mod_perl-2.0.4.tar.gz
Net::DNS 0.59 0.63 OLAF/Net-DNS-0.63.tar.gz
Net::Ping 2.31 2.35 SMPETERS/Net-Ping-2.35.tar.gz
Net::SSLeay 1.30 1.35 FLORA/Net-SSLeay-1.35.tar.gz
Pod::Man 1.37 2.18 RRA/podlators-2.1.2.tar.gz
Pod::ParseUtils 1.33 1.35 MAREKR/Pod-Parser-1.35.tar.gz
Safe 2.12 2.16 RGARCIA/Safe-2.16.tar.gz
SelfLoader 1.0904 1.16 SMUELLER/SelfLoader-1.16.tar.gz
Shell 0.6 0.72 FERREIRA/Shell-0.72.tar.gz
Socket6 0.19 0.20 UMEMOTO/Socket6-0.20.tar.gz
Storable 2.15 2.18 AMS/Storable-2.18.tar.gz
Switch 2.10_01 2.13 RGARCIA/Switch-2.13.tar.gz
Sys::Syslog 0.13 0.26 SAPER/Sys-Syslog-0.26.tar.gz
Term::ANSIColor 1.10 1.12 RRA/ANSIColor-1.12.tar.gz
Term::Cap 1.09 1.12 JSTOWE/Term-Cap-1.12.tar.gz
Test::Harness::Straps 0.26 0.30 MSCHWERN/Test-Harness-Straps-0.30.
tar.gz
Text::Balanced 1.95 2.000000 DCONWAY/Text-Balanced-v2.0.0.tar.
gz
Text::Soundex 1.01 3.03 MARKM/Text-Soundex-3.03.tar.gz
Text::Tabs 2005.0824 2007.1117 MUIR/modules/Text-Tabs+Wrap-2006.
1117.tar.gz
Thread::Queue 2.00 2.11 JDHEDDEN/Thread-Queue-2.11.tar.gz
Thread::Semaphore 2.01 2.09 JDHEDDEN/Thread-Semaphore-2.09.
tar.gz
Tie::RefHash 1.32 1.38 NUFFIN/Tie-RefHash-1.38.tar.gz
Time::HiRes 1.86 1.9715 JHI/Time-HiRes-1.9715.tar.gz
Time::Local 1.11 1.18 DROLSKY/Time-Local-1.18.tar.gz
URI 1.35 1.37 GAAS/URI-1.37.tar.gz
Unicode::Normalize 0.32 1.02 SADAHIRO/Unicode-Normalize-1.02.
tar.gz
XSLoader 0.06 0.08 SAPER/XSLoader-0.08.tar.gz
base 2.07 2.12 RGARCIA/base-2.12.tar.gz
bigint 0.07 0.23 TELS/math/bignum-0.23.tar.gz
constant 1.05 1.15 SAPER/constant-1.15.tar.gz
encoding 2.02 2.06 DANKOGAI/Encode-2.23.tar.gz
threads 1.07 1.71 JDHEDDEN/threads-1.71.tar.gz
threads::shared 0.94 1.26 JDHEDDEN/threads-shared-1.26.tar.
gz
212 installed modules have no parseable version number
(use 'o conf show_unparsable_versions 1' to show them)
[root@ujpadmin ujiadmin]#
  • 参照しているCPANのFTPサイトの情報を確認して,バージョンアップが必要なモジュールの一覧が出ている.

3.バージョンアップを行う

  • CPAN用のコマンドにて,一気にバージョンアップを行うコマンドを入力する.
[root@ujpadmin ~]# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
CPAN: File::HomeDir loaded ok (v0.80)
CPAN: Storable loaded ok (v2.15)
Going to read /root/.cpan/Metadata
Database was generated on Mon, 04 Aug 2008 04:02:48 GMT

Package namespace installed latest in CPAN file
Apache2::Reload 0.09 0.10 PHRED/Apache-Reload-0.10.tar.gz
Apache::Test 1.27 1.30 PHRED/Apache-Test-1.30.tar.gz
App::Prove 3.12 3.13 ANDYA/Test-Harness-3.13.tar.gz
AutoLoader 5.60 5.66 SMUELLER/AutoLoader-5.66.tar.gz
B 1.09_01 1.17 RGARCIA/perl-5.10.0.tar.gz
B::Debug 1.02_01 1.11 RURBAN/B-Debug-1.11.tar.gz
B::Lint 1.03 1.11 JJORE/B-Lint-1.11.tar.gz
BSD::Resource 1.28 1.2901 JHI/BSD-Resource-1.2901.tar.gz
CGI 3.15 3.39 LDS/CGI.pm-3.39.tar.gz
CGI::Carp 1.29 1.30 LDS/CGI.pm-3.34.tar.gz

〜略〜

First we need to know where the 'httpd' executable is located.
If you have more than one Apache server is installed, make sure
you supply the path to the one you are going to use for testing.
You can always override this setting at run time via the '-httpd'
option. For example:

% t/TEST -httpd /path/to/alternative/httpd

or via the environment variable APACHE_TEST_HTTPD. For example:

% APACHE_TEST_HTTPD=/path/to/alternative/httpd t/TEST

If for some reason you want to skip the test suite, type: skip

Please provide a full path to 'httpd' executable:

[]
  • Apacheをコントロールする関連モジュールがApacheのデーモンプログラムへのパスを設定する.
  • 今回はApache2を主導でインストールしてある環境なので,次の様にパスを入力した.
Please provide a full path to 'httpd' executable:

[] /usr/local/apache2/bin/httpd
  • 今回はApache2を手動でインストールしてある環境なので,それにそったパスを設定した.
Next we need to know where the 'apxs' script is located. This script
provides a lot of information about the apache installation, and makes
it easier to find things. However it's not available on all platforms,
therefore it's optional.

If you don't have it installed it's not a problem. Just press Enter.

Notice that if you have Apache 2.x installed that script could be
called as 'apxs2'.

If you have more than one Apache server is installed, make sure you
supply the path to the apxs script you are going to use for testing.
You can always override this setting at run time via the '-apxs'
option. For example:

% t/TEST -apxs /path/to/alternative/apxs

or via the environment variable APACHE_TEST_APXS. For example:

% APACHE_TEST_APXS=/path/to/alternative/apxs t/TEST


Please provide a full path to (optional) 'apxs' executable:

[]
  • 次に,Apacheのapxsへのパスの入力を求められる.
Please provide a full path to (optional) 'apxs' executable:
 [] /usr/local/apache2/bin/apxs
  • 同じくパスを入力した.
  • Apacheについては,アップグレード中に何度か同じ様にパスの入力を求められる場合がある.

4.テストはしない

  • インストール時に,次の様にテストを求められる事がある.
Running the test suite is important to make sure that the module that
you are about to install works on your system. If you choose not to
run the test suite and you have a problem using this module, make sure
to return and run this test suite before reporting any problems to the
developers of this module.

Skip the test suite? [No]
  • インストールの際にmake testをするか質問されているが,ここではskipする.
Skip the test suite? [No] yes
[ error] Skipping the test suite execution, while returning success status
PHRED/Apache-Test-1.30.tar.gz
/usr/bin/make test -- OK
Running make install
  • いろいろな環境がそろっていない時は,testを行っても失敗する事が多いので,テストを行わない.
  • このあとは何度か似た様な質問が繰り返されるが,同じ様に答える.
  • 基本的にはテストはしない.

5.何度もトライする

  • これまでの手順通りにバージョンアップを行うと,順調に行けば次の様にいったん終わる.
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
[root@ujpadmin ~]#
  • 再度同じコマンドを入力する.
root@ujpadmin ~]# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
CPAN: File::HomeDir loaded ok (v0.80)
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
Database was generated on Mon, 04 Aug 2008 04:02:48 GMT

Package namespace installed latest in CPAN file
Apache2::Reload 0.09 0.10 PHRED/Apache-Reload-0.10.tar.gz
B 1.09_01 1.17 RGARCIA/perl-5.10.0.tar.gz
DB_File 1.814 1.817 PMQS/DB_File-1.817.tar.gz

〜略〜

Next we need to know where the 'apxs' script is located. This script
provides a lot of information about the Apache installation, and makes
it easier to find things on your system. Normally it's located in the
same directory as the 'httpd' executable.

If you don't yet have Apache installed you can build Apache against
the Apache source code, but you won't be able to run the test suite (a
very important step). Therefore you may want to install Apache before
proceeding.


Please provide a full path to 'apxs' executable
(press Enter if you don't have it installed):
  • また同じ様な質問があるので,入力する.
〜略〜

is part of the perl-5.10.0 distribution. To install that, you need to run
force install warnings --or--
install R/RG/RGARCIA/perl-5.10.0.tar.gz
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
[root@ujpadmin ~]#
  • 再度普通にインストールが終わるが,また実行する.
[root@ujpadmin ~]# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
CPAN: File::HomeDir loaded ok (v0.80)
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
Database was generated on Mon, 04 Aug 2008 04:02:48 GMT

Package namespace installed latest in CPAN file
Apache2::Reload 0.09 0.10 PHRED/Apache-Reload-0.10.tar.gz
B 1.09_01 1.17 RGARCIA/perl-5.10.0.tar.gz
DB_File 1.814 1.817 PMQS/DB_File-1.817.tar.gz
ModPerl::MethodLookup undef 0.009 GOZER/mod_perl-2.0.4.tar.gz
241 installed modules have no parseable version number

〜略〜
  • 3回〜5回くらい繰り返しやれば,徐々にエラー等が無くなる場合がある.

6.再度更新が必要なリストを取得

  • 最初に行った更新が必要なモジュール一覧を,再度取得する.
[root@ujpadmin ~]# perl -MCPAN -e 'CPAN::Shell->r'
CPAN: File::HomeDir loaded ok (v0.80)
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
Database was generated on Mon, 04 Aug 2008 04:02:48 GMT

Package namespace installed latest in CPAN file
B 1.09_01 1.17 RGARCIA/perl-5.10.0.tar.gz
DB_File 1.814 1.817 PMQS/DB_File-1.817.tar.gz
ModPerl::MethodLookup undef 0.009 GOZER/mod_perl-2.0.4.tar.gz

241 installed modules have no parseable version number
(use 'o conf show_unparsable_versions 1' to show them)
[root@ujpadmin ~]#
  • かなり件数は減っているが,いくつか残っている.
  • これは,以下の理由によりアップデートしない.
パッケージ名説明
B
 Perlのコンパイラ. Perl 5.10.0でアップデートを催促している模様.
 Perlは,2007年12月に5.10.0がリリースされているが,メジャーリリースのため互換性に関して疑問が残るため,今回は避けておく.
DB_File
 Berkeley DBにアクセスする為のモジュール. Berkeley DBがインストールされていない等が原因でアップデートされていないのかも. 使わない場合は,不要.
ModPerl::MethodLookup
 mod_perlのオブジェクトやメソッドをモジュールを参照する.
 mod_perlは,大きく2つあり,mod_perl 1.0系がApache1.3系が対応,mod_perl 2.0系(1.99系含む)がApache2.0系に対応している.
 現在用意している環境では,mod_perlを使っていないので,不要とする.



広告スペース
Google