2013年3月28日木曜日

CPANを利用してPerlモジュールをインストールする(Linux, Ubuntu)

Perlモジュールをインストールしたいとき、CPANのサイトからわざわざモジュールを一個一個ダウンロードしてインストールするのは億劫です。

また、特定のPerlモジュールをインストールする際、別のPerlモジュールも必要となる場合もあるため、必要なモジュールを一括してインストールできれば便利です。

そこで、コマンドを使った方法で、Perlモジュールをインストールする方法を紹介したいと思います。この方法を用いると、足りないPerlモジュールを追加で自動的にインストールしてくれます。

〈CPAN経由でのインストール〉
(1)rootユーザーになり、管理者権限を獲得する。
$ su 

(2)CPANを呼び出す。
$ perl -MCPAN -e shell
⇒初めて場合、いろいろな質問が出てくるが、「Enterキー」を押すか「y」を入力して先に進む。

(3)Perlモジュールをインストールする。
cpan[1]> install モジュール名

(4)CPANを終了させる。
cpan[2]> q

(5)rootユーザーから抜ける。
$ exit

〈指定したPerlモジュールがすでにインストールされている場合〉
(1)インストールを実行する。
cpan[3]> install HTTP::Request
HTTP::Request is up to date (6.00).

cpan[4]> install HTTP::Request::Common
HTTP::Request::Common is up to date (6.04).
上記のように表示されます。

〈指定したPerlモジュールがうまくインストールできない場合〉
(1)インストールを実行する。
cpan[2]> install XML::Parser::Expat
Running install for module 'XML::Parser::Expat'
Running make for T/TO/TODDR/XML-Parser-2.41.tar.gz
  Has already been unwrapped into directory /root/.cpan/build/XML-Parser-2.41-fxgeS3
Could not make: Unknown error 
Running make test
  Can't test without successful make 
Running make install
  Make had returned bad status, install seems impossible

(2)Perlモジュールが保存されているディレクトリに移動して原因を探る。
cpan[3]> q
$ cd /root/.cpan/build/XML-Parser-2.41-fxgeS3
$ perl Makefile.PL
$ make

cc -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"2.41\" -DXS_VERSION=\"2.41\" -fPIC "-I/usr/lib/perl/5.14/CORE"   Expat.c
Expat.xs:12:19: 致命的エラー: expat.h: そのようなファイルやディレクトリはありません
コンパイルを停止しました。
make[1]: *** [Expat.o] エラー 1
make[1]: ディレクトリ `/root/.cpan/build/XML-Parser-2.41-fxgeS3/Expat' から出ます
make: *** [subdirs] エラー 2
⇒どうやら、expat.hがLinuxに入っていないために、エラーが起こっているようです。

(3)expat.hをapt-getコマンドでインストール
$ apt-file search /usr/include/expat.h
libexpat1-dev: /usr/include/expat.h

$ sudo apt-get install libexpat1-dev
[sudo] password for imamachi:

(4)再度、CPANでインストールを試みる。
$ perl -MCPAN -e shell
cpan[1]> install モジュール名


0 件のコメント:

コメントを投稿