MTを使う為のPerlモジュールのインストール:インストール状況の確認

お久しぶり、になってしまいましたm(__)m

3月に入ってから身の回りがバタバタしており、更新が滞っていました。以前と同じペースで記事書けるか、といえばまだ流動的な状況ではありますが、皆様とMTの話題で盛り上がれるよう?頑張っていきます。

今回は、前回投稿迄のPerlモジュール周りの記事が自分の中で描ききれていなかったので、その続きとなります。

Perlモジュールのインストール状況の確認

はじめに

perlモジュールのインストールをやっていると、次のような事が時折あるかと思われます。

  • このモジュールちゃんとインストールできたのか?
  • さっきインストールしたモジュールのバージョンなんだったっけ?
  • そもそも既存でインストール済みのモジュールあるけど何入ってるの?

今回はその確認方法について見ていきます。

mt-check.cgi から確認する

そもそもMT本体ディレクトリ直下に、mt-check.cgi なるものがあり、必要なモジュールの有無の確認はここからできてしまいます。

また、mt-check.cgi は、MT本体ディレクトリ直下の /extlib, および /lib 配下のファイルがあれば動きます。
つまり、例えば転送速度の都合などでファイルのアップロードを時短したい、という場合は、MT本体ディレクトリに /extlib, /lib, mt-check.cgi さえあればOKです。

mt-check.cgi 以外の確認方法

通常は、MTに同梱されている mt-check.cgi から確認する事が出来るのですが、一部MTプラグインが必要とするモジュールについて確認する、もしくは移行先の環境においてのインストール状況を確認する場合において、mt-check.cgi以外の確認方法が必要な場合もあるかと思われます。以降にその方法を紹介します。

インストールされているすべてのモジュールのリストを取得する

sshより次のコマンドを入力。perlモジュールのパス内を検索して、モジュールのリストを出力する。

find `perl -e 'print "@INC"'` -name '*.pm' -prin

検索結果が沢山出力されるので、リダイレクトでファイルに一旦書き込むなどしてから出力結果を確認した方が良いでしょう。

/usr/local/lib64/perl5/Time/HiRes.pm
/usr/local/lib64/perl5/Crypt/SSLeay.pm
/usr/local/lib64/perl5/Crypt/SSLeay/X509.pm
/usr/local/lib64/perl5/Crypt/SSLeay/Conn.pm
/usr/local/lib64/perl5/Crypt/SSLeay/Err.pm
/usr/local/lib64/perl5/Crypt/SSLeay/Version.pm
/usr/local/lib64/perl5/Crypt/SSLeay/CTX.pm
/usr/local/lib64/perl5/Crypt/SSLeay/MainContext.pm
/usr/local/lib64/perl5/version/vpp.pm
/usr/local/lib64/perl5/version/regex.pm
...
(以降略)

特定のモジュールのインストールの有無を確認する

若干トリッキーな方法になります。

sshより、Perlモジュールを実行します。

perl -Mモジュール名 -e ''

モジュールがインストールされている場合は、何も出力されず制御が戻ります。逆にインストールされてない場合はエラーメッセージが返ります。

[hoge@xxxx ~]# perl -MDBD::mysql -e ''
[hoge@xxxx ~]# 

また、perldocコマンドを叩いて、ドキュメントが出るか否かで判断する、という方法もあります。

perldoc -m モジュール名

perlモジュールのインストールログの確認

インストールの履歴から概要を把握する事もできます。
ソースおよびcpanからのPerlモジュールのインストール履歴は、次のコマンドにて確認できます。

perldoc perllocal

ちなみに、実行すると次のような形で細かく履歴を表示してくれます。

  Wed Feb 11 06:56:15 2015: "Module" ExtUtils::MakeMaker
    *   "installed into: /root/perl5/lib/perl5"

    *   "LINKTYPE: dynamic"

    *   "VERSION: 7.04"

    *   "EXE_FILES: bin/instmodsh"

  Wed Feb 11 06:56:17 2015: "Module" local::lib
    *   "installed into: /root/perl5/lib/perl5"

    *   "LINKTYPE: dynamic"

    *   "VERSION: 2.000015"

    *   "EXE_FILES: "

~

この方法だとPerlモジュール毎のある程度細かい情報を出してくれるので、インストール状況の詳細な把握に役立ちます。
ただし、yum からインストールした場合は記録してくれない点に注意してください。

yum でインストールしたperlモジュールのインストール状況確認

次のコマンドを実行します。

yum list installed | grep perl

すると、次のような結果が表示されます。
※「perl」という文言を名称に含むパッケージを全て出すので、perlモジュール以外のパッケージが含まれたり、(多分無いと思うけど)一部のPerlモジュールが含まれない場合が想定される事に注意してください。

ImageMagick-perl.x86_64              6.7.8.9-10.15.amzn1           @amzn-main   
openssl-perl.x86_64                  1:1.0.1i-1.78.amzn1           @amzn-main   
perl.x86_64                          4:5.16.3-283.37.amzn1         installed    
perl-Archive-Tar.noarch              1.92-2.5.amzn1                @amzn-main   
perl-Archive-Zip.noarch              1.30-11.7.amzn1               @amzn-main   
perl-Authen-SASL.noarch              2.15-9.7.amzn1                @amzn-main   
perl-Business-ISBN.noarch            2.06-2.7.amzn1                @amzn-main   
perl-Business-ISBN-Data.noarch       20120719.001-2.7.amzn1        @amzn-main   
perl-CGI.noarch                      3.63-4.5.amzn1                @amzn-main   
perl-CPAN-Meta.noarch                2.120921-5.5.amzn1            @amzn-main   
perl-CPAN-Meta-Requirements.noarch   2.122-7.6.amzn1               @amzn-main   
...

参考

CPANモジュールのインストール場所の確認方法 - ますたろー日記
http://masutaro.hatenablog.com/entry/2013/04/24/223133

Perlモジュールを一覧表示する(Linux Tips)
http://www.linuxmaster.jp/linux_skill/2011/08/perl.html

Perlモジュール確認方法(TrippyBoyの愉快な日々)
http://blog.trippyboy.com/2011/perl/perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95/

Perlモジュールが入っているか調べる2つの簡単なやり方(あれだよ、あれ......なんだっけ?)
http://wizard-blue.hatenablog.jp/entry/20091029/1256743552

関連するタグ

Perl