Perlモジュールを任意のディレクトリへインストールする

2019/02/14更新

目次

概要

root権限が無いなどの制限のある環境が理由で、使いたいPerlモジュールをインストールできない場合は、自分のホームディレクトリなどの任意の場所にインストールして使うことができる。

手作業での手順

例えばホームディレクトリ/home/hogefuga/にインストールする場合、/home/hogefuga/usr/local/のようなディレクトリを事前に掘っておく。

CPANで目的のモジュールを検索し、ダウンロードして解凍したら、生成されたディレクトリに入って、以下を実行する。

perl Makefile.PL PREFIX=/home/hogefuga/usr/local
make
make install

これでPREFIXで指定したディレクトリにモジュールがインストールされる。実際にインストールされた場所を確認すると、/home/hogefuga/usr/local/lib/perl5/site_perl/5.8.9/などのディレクトリが自動的に掘られてインストールされているはずである。

モジュールがインストールされたディレクトリが確認できたら、モジュールを使いたいスクリプトの先頭に以下を記述する。

use lib '/home/hogefuga/usr/local/lib/perl5/site_perl/5.8.9';

これでモジュールの検索パスが@INCに追加され、使用可能となる。

cpanmを使った手順

上記の手作業での手順は、モジュールが別のモジュールに多数依存していたり、依存関係が複雑であったりする場合などには、非常に手間がかかってしまう。そこで、cpanmというツールが便利である。

cpanmは、単体のPerlスクリプトである。http://xrl.us/cpanmからダウンロードして実行権限をつけるだけで、すぐに使用できる。

-lオプションでインストールしたいディレクトリを指定して実行する。以下は、DBI::SQLiteモジュールを/home/hogefuga/usr/localにインストールする場合の例である。

cpanm -l /home/hogefuga/usr/local DBI::SQLite

これで、依存などを自動的に解決して、必要なモジュールを全てインストールしてくれる。先の手順で手動でmakeした場合とは、ディレクトリ構成が異なるようなので注意。

スクリプトから使う際は、前述の通り、インストールされたディレクトリを確認してuse lib ~を記述する。

外部リンク