本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはacotieこと横山彰子さんで、テーマは「新人さんのための仕事で使えるPerl基礎知識」です。CPAN環境の構築方法や変数の扱いなど、新人さんがPerlで最初につまずきがちなこと、苦手とされがちなことを、ピックアップして解説していきます。
今どきのCPAN環境構築術
Perlの最大の特徴はCPANにあります。CPANは「Comprehensive Perl Archive Network」の略で、Perlで書かれた世界中のソフトウェアを集めた巨大なアーカイブです。CPANには再利用性・汎用性の高いモジュールが登録されているため、Perlを使って何か新しい作品を作り始めたいときに、先人の知恵を借りてスピーディかつスマートに開発できます。
登録モジュールの検索やドキュメントの閲覧サービスも提供されているため、Perlプログラマは適切なモジュールを探して、簡単に入手できます。
しかしCPANには、「cpanコマンドの設定が必要で面倒」「root環境でなければインストールできない」といった誤解があります。実際は気軽に使えるものなのですが、慣れていない人には敷居が高いと思われやすく、筆者は残念でなりません。そこでここでは、従来からのcpanコマンドの使い方をはじめ、最新のCPANモジュールのインストール方法を紹介します。
cpanコマンド
cpanコマンドは、ユーザの手持ちのライブラリの管理、CPANミラーへの問い合わせ、モジュールのダウンロードを行うものです。この専用ソフトウェアを利用すると、簡単なコマンドでCPANモジュールを検索・導入可能になります。
それではさっそく、CPANモジュールをインストールできるようにするまでの環境を整えましょう。
cpanコマンドの確認
cpan -v
でCPAN.pmのバージョンを確認できます。
cpan -h
でコマンドのヘルプを確認できます。
cpanコマンドの使い方
では、cpanコマンドを使ってみましょう。
cpanコマンドを実行する方法にはいくつかあり、次の2つはどちらも同じ意味となります。
初回実行時には初期設定が必要ですが、基本的にはすべてデフォルトのままでかまいません(あとから変更できます。環境によってはmakeがインストールされてないとエラーになる場合があります)。
次のようにcpanシェルの対話モードが表示されたら準備完了です。
モジュールのインストールには、cpanシェルが立ち上がった状態でinstall モジュール名
と入力します。これでダウンロード、解凍、テスト、インストールまでを行います。ここでは大文字・小文字も厳密にチェックされるので注意してください。
CPANモジュールのインストールディレクトリは、次のコマンドで知ることができます。
cpanmコマンド
cpanm(App::cpanminus)は、リソースが限られているVPS(Virtual Private Server)などの環境でもCPANを快適に使えることを目指して、宮川達彦さんが中心になって開発されているコマンドです。cpanmコマンドを使えば、root権限を持っていないユーザでも、設定なしでCPANモジュールを取得して解凍してビルドしてインストールまでしてくれます。さらに、従来のcpanコマンドより少ないメモリで動作し、メッセージが少ないなどのメリットもあります。cpanよりもcpanmを使用することをお勧めします。
cpanmコマンドのインストール
cpanmを一般ユーザ領域にインストールする場合は、次のように行います。
cpanmコマンドの使い方
cpanmコマンドを使ったCPANモジュールのインストールは、cpanm モジュール名
で行います。
新たにCPANの環境を移行する
新しくCPAN環境を作りたい場合や、環境を移行したい場合は、インストール済みのモジュール一覧ファイルをあらかじめ作成しておくと便利です。インストール済みのモジュール一覧ファイルを作るコマンドは次のとおりです。
これで、改行で区切られたモジュールのリストファイルが得られます。cpanmコマンドにモジュールのリストファイルを引数として渡すと、リストファイルに書かれたモジュールをすべてインストールしてくれます。
cpanmの細かいオプションやドキュメントはcpanm -h
というヘルプコマンドに載っていますので参考にしてください。
環境変数の設定
cpanmをデフォルトのまま使うと、ホームディレクトリ以下の~/perl5ディレクトリにCPANモジュールがインストールされます。
perlコマンドやperldocコマンドを実行した際にこのディレクトリが認識されるように、シェルの環境変数を設定しましょう。.bashrcや.bash_profi e、.zshrcなど各自のシェルの環境変数に、export PERL5LIB=$HOME/perl5/lib/perl5
を追記したあと、次のコマンドを実行してください。
この環境変数PERL5LIBは、Perlのライブラリファイルを探すときに、標準のライブラリディレクトリ、カレントディレクトリよりも前に探しにいくディレクトリをカンマで区切って並べたリストです。
うまく認識されるか試してみましょう。
cpan-outdatedを使い全モジュールのアップデートを行う
プロジェクトの開発段階で、利用しているCPANモジュールを最新にし続けることが可能な場合は、cpanoutdatedを使って、すでにインストールされているCPANモジュールの中からアップグレード可能なモジュールだけをリストにします。そのリストをcpanmに読み込ませることで、次のようなワンライナーで簡単にインストール済みのすべてのCPANモジュールのアップデートできます。
perlbrewコマンド
perlbrew(App::perlbrew)は、劉康民さんが開発されている、複数のバージョンのPerlをインストールし切り替えて使うことができるツールです。たくさんcpanモジュールをメンテナンスしている場合、プロジェクトの都合で複数のPerlのバージョンで検証しなければならない場合、新いPerlのバージョンを早く使ってみたい場合などに使えるのでお勧めです。
perlbrewコマンドのインストール
次のようにしてperlbrewをインストールします。
次のコマンドでperlbrew自体を初期化します。
設定ファイルに環境変数を追加します。
perlbrewコマンドの使い方
perlbrewでは、次のようにPerlのバージョンを指定してインストールします。
Perlのバージョンを切り替えるにはperlbrew switch
を使います。次の例ではバージョン5.12.1に切り替えています。
次のコマンドで、インストール済みのPerlを確認できます。アスタリスク(*)が付いているものが現在使用しているバージョンです。
複数のバージョンを切り替えて使うために、Perlのプログラムファイルのシェバンと呼ばれる#!
から始まる1行目を、次のように記述する必要があります。
環境変数の設定
perlbrewでインストールしたPerlを使用した場合、CPANモジュールはデフォルトでは$HOME/perl5/perlbrew以下にインストールされます。インストール先のディレクトリを変更したい場合は、.bashrcなど各自のシェルの環境変数にexport PERLBREW_ROOT=/usr/local/perlbrew
を追加し、source ~/.bashrc
を実行したあと、再びperlbrew init
コマンドを実行してください。