MTを使う為のPerlモジュールのインストール
はじめに
※本記事では、MTのインストール先のOSがRedhat系linuxである事、およびsshを利用したlinuxの基本的な操作(例:ファイル移動、ファイルへのアクセス権限設定, yumの利用)を概ね理解している事を前提とします。
MTの動く環境を用意する際に、例えばCPIなどのホスティングサービスの自動インストール機能ですぐ使えるなら良いのですが、それが無い時はMTを手動でインストールする事になります。
その際、慣れてない方にとって一番ハードルが高いのは、次の2つか、と思われます。
- MySQL環境の構築
- perlモジュールのインストール
今回は、この内、perlモジュールのインストールに焦点を当て、知らないとよく引っかかるのではと思われる箇所について述べます。
必要なPerlモジュールの一部は既にMTが持っている
MT本体ディレクトリ直下、/extlib の配下には、必要な一部のPerlモジュールが既に同梱されています。
ここで注意したいのは、MTのバージョンによっては、同梱されているPerlモジュールのバージョンも異なる場合がある、という事です。
また余談ですが、MTプラグインによっては必要なPerlモジュールを含むものがあります。
Perlモジュールのインストール状況の確認
mt-check.cgi から確認する
そもそもMT本体ディレクトリ直下に、mt-check.cgi なるものがあり、必要なモジュールの有無の確認はここからできてしまいます。
また、mt-check.cgi は、MT本体ディレクトリ直下の /extlib, および /lib 配下のファイルがあれば動きます。
転送速度の都合などでファイルのアップロードを時短したい、という場合は、MT本体ディレクトリに /extlib, /lib, mt-check.cgi さえあればOKです。
Perlモジュールのインストール
Perlモジュールのインストールは、多くの場合sshからパッケージ管理ツールを利用して行う事になると思われます。
ここで利用するパッケージ管理ツールは、cpan とyum があります。
以降にて、cpanおよびyumを利用したPerlモジュールのインストールについて述べます。
cpanでのperlモジュールのインストール
cpanとは
本来cpan(=Comprehensive Perl Archive Network)と言う言葉は、Web上に公開されている世界中のPerlモジュールを集めたアーカイブの事です。
ただ、Web上では、cpanツールによるcpanコマンドやcpanシェルを指す事もあります。
また、cpanツールは、指定したPerlモジュールをこのcpanから取得し、依存関係も解決した形でインストールしてくれる、Perlモジュール導入の効率化ツールです。
cpanのインストール
cpan が既にOSにインストールしてあるのなら良いのですが、無い場合はインストールする事になります。
インストール方法はソースからインストールする方法と、yumでインストールする方法があります。yumでできるならyumを使った方が楽でしょう。
yum install cpan
yum からインストールできないのであれば、ソースからインストールします。
ソースは次のサイトで「cpan」で検索すると見つかります。
http://search.cpan.org/
以降に、sshからのインストール例を示します。
cd /usr/local/src wget http://search.cpan.org/CPAN/authors/id/A/AN/ANDK/CPAN-2.05.tar.gz tar -xvzf CPAN-2.05.tar.gz cd CPAN-2.05 perl Makefile.PL make make test make install
後はcpan コマンドを実行します。初回起動時は対話型で初期設定が走るので、質問に答える形で設定を行います。
cpan
いちいち質問を読むのが面倒であればただEnterを押していけば大抵OKですが、質問の意味を理解して的確に答えるのがより良いでしょう。
質問の詳細は、cpanの公式サイトに任せるとして、割愛します(′ー`)
cpanツールによる基本的なPerlモジュールのインストールの方法
次に例を示します。
perl -MCPAN -e shell
cpan> install DBI
cpan> install DBD::MySQL
cpan> quit
上述の例は、シックスアパートの公式ドキュメントを一部引用したものです。引用元の次のページには、詳細が載っていますので、必要に応じて見ると良いでしょう。
http://www.movabletype.jp/documentation/mt6/reference/install-perl-modules.html
yumを使ったperlモジュールのインストール
yumとは
Redhat系のlinuxを扱う上ではあまりに一般的過ぎる為、ここでは割愛します(′ー`)
perlモジュール名からのパッケージ名の特定
yumからのPerlモジュールのインストールにて引っかかると思われる箇所として、意図するモジュールがyumのリポジトリ上にどのような名称で登録されているかです。
例えば、次のモジュールの場合だと、
HTML::Parser
次のような名称になります。
perl-HTML-Parser
これから推測するに、命名規則が次のようになっているようです。
yumのリポジトリから意図するPerlモジュールを探す際は、この命名規則を踏まえておくと良いでしょう。
※ただし、例外もあるので注意してください。例)ImageMagick-perl.x86_64 とか
モジュール名:[aaa]::[bbb]::[ccc]
yumパッケージ名:perl-[aaa]-[bbb]-[ccc]
また、意図するperlモジュールに対応したyumのパッケージについて、yumのどのリポジトリに存在するかやどのバージョンが存在するかを、次のサイトで検索する事ができます。
http://pkgs.org/
Perlモジュールと依存関係にある他のモジュールの特定
yumだとあまり見受けないのですが、cpanの場合だと、依存関係をうまく解決してくれない場合があるようです。
Perlモジュールの依存関係を調べるベターな方法としては、次のサイトより意図するモジュールを検索して、検索結果からモジュールの詳細ページを開いて、ページ内の項目「Dependencies」を参照する事で把握できます。
また、yumの本来の使い方ではありませんが、yum のinstall コマンドを使って依存関係をある程度調べる事も出来ます。
例えば、XML::Paeser の必要とするパッケージを調べたい場合は、次のような形でyumを実行します。
yum install perl-XML-Perser
次の結果が出ます。
========================================================================================================================================== Package Arch Version Repository Size ========================================================================================================================================== Installing: perl-XML-Parser x86_64 2.36-7.el6 base 224 k Installing for dependencies: perl-libwww-perl noarch 5.833-2.el6 base 387 k Transaction Summary ========================================================================================================================================== Install 2 Package(s)
上記より、Libwww::Perl に依存している事が分かりました。
cpanとyumのどちらでインストールしたほうがよいか
Perlモジュールの管理を考えると、cpanでインストールできないときにyumを使う、という併用はあまり良くないでしょう。
では、どちらが良いかと考えると、手間の観点から見れば、yum の方がインストールも早く済み、cpanほどエラーも出ないので楽でしょう。
一方、次の場合にはcpanの方が融通が利くと思われます。
- 検証環境を作るときなどで、perlモジュールのバージョンを細かく指定してインストールを行う場合
- パッケージのソースインストールと併用する場合
あとがき
当初は、もっと細かい部分も書こうとしたのですが、perlモジュールのインストールについて言いたい事を全部書こうと思ったら、一つの記事に収めきれなくなってしまいました。
その為、幾つかに分割して、今回はMT環境構築におけるPerlモジュールインストールの、本当に基本的な部分についての説明となっています。
次回以降は、ここから更に細かい部分など、今回触れられなかった他の部分について触れる予定です。
参考
-