19 December 2010

さくらインターネットで標準提供以外のCPANライブラリを使う

さくらインターネット(このWebサーバをホスティングしている会社)の共用サーバで、標準提供以外のCPANライブラリを使う場合の設定メモ

(標準提供のライブラリは、標準提供のものを使うので、Bundle::CPAN をユーザ領域にはインストールしない)

CPANの設定ファイル、ビルド環境は ~/.cpan に格納されているが、新たに最初から再構築するのであれば、全て消去する

$ cd ~/.cpan $ rm -rf ./*

cpanコマンドを初めて実行すると、環境設定値の問いが続くが、全てリターンキー(標準設定値)でOK。

$ cpan Would you like me to configure as much as possible automatically? [yes] yes cpan[1] q ← とりあえず終了

設定ファイルを開いて、一部分の値を修正する

~/.cpan/CPAN/MyConfig.pm
$CPAN::Config = { 'applypatch' => q[], 'auto_commit' => q[0], 'build_cache' => q[100], 'build_dir' => q[/home/user/.cpan/build], 'build_dir_reuse' => q[0], 'build_requires_install_policy' => q[ask/yes], 'bzip2' => q[/usr/bin/bzip2], 'cache_metadata' => q[1], 'check_sigs' => q[0], 'commandnumber_in_prompt' => q[1], 'connect_to_internet_ok' => q[1], 'cpan_home' => q[/home/user/.cpan], 'curl' => q[/usr/local/bin/curl], 'ftp' => q[/usr/bin/ftp], 'ftp_passive' => q[1], 'ftp_proxy' => q[], 'getcwd' => q[cwd], 'gpg' => q[/usr/local/bin/gpg], 'gzip' => q[/usr/bin/gzip], 'halt_on_failure' => q[0], 'histfile' => q[/home/user/.cpan/histfile], 'histsize' => q[100], 'http_proxy' => q[], 'inactivity_timeout' => q[0], 'index_expire' => q[1], 'inhibit_startup_message' => q[0], 'keep_source_where' => q[/home/user/.cpan/sources], 'load_module_verbosity' => q[v], 'lynx' => q[/usr/local/bin/lynx], 'make' => q[/usr/bin/make], 'make_arg' => q[], # 'make_install_arg' => q[], 'make_install_arg' => qq[/home/user/local], 'make_install_make_command' => q[/usr/bin/make], # 'makepl_arg' => q[], 'makepl_arg' => qq[INSTALLDIRS=site LIB=/home/user/local/lib/perl5 PREFIX=/home/user/local], 'mbuild_arg' => q[], 'mbuild_install_arg' => q[], 'mbuild_install_build_command' => q[./Build], 'mbuildpl_arg' => q[], 'ncftp' => q[], 'ncftpget' => q[], 'no_proxy' => q[], 'pager' => q[more], 'patch' => q[/usr/bin/patch], 'perl5lib_verbosity' => q[v], 'prefer_installer' => q[MB], 'prefs_dir' => q[/home/user/.cpan/prefs], 'prerequisites_policy' => q[ask], 'scan_cache' => q[atstart], 'shell' => q[/bin/csh], 'show_unparsable_versions' => q[0], 'show_upload_date' => q[0], 'show_zero_versions' => q[0], 'tar' => q[/usr/bin/tar], 'tar_verbosity' => q[v], 'term_is_latin' => q[1], 'term_ornaments' => q[1], 'test_report' => q[0], 'trust_test_report_history' => q[0], 'unzip' => q[/usr/local/bin/unzip], 'urllist' => [], 'use_sqlite' => q[0], 'wget' => q[/usr/local/bin/wget], 'yaml_load_code' => q[0], 'yaml_module' => q[YAML], }; 1; __END__

makepl_arg にセットする値は、cpanで何か適当なライブラリをインストールして、失敗するようであれば、その時のWarningメッセージに従って適宜書きなおさないといけないかもしれない。

再度、cpanプログラムを実行して、(必要な)ライブラリをインストールする

$ cpan cpan[1] install Finance::Currency::Convert::Yahoo

実行するPerlスクリプトに、ユーザディレクトリ下のライブラリ・パスを追加する

為替相場を出力するスクリプトの例
#!/usr/bin/perl BEGIN { push(@INC, '/home/user/local/lib/perl5'); } use strict; use warnings; use Finance::Currency::Convert::Yahoo; #$Finance::Currency::Convert::Yahoo::CHAT = 1; print "USD->JPY : " . Finance::Currency::Convert::Yahoo::convert(1,'USD','JPY') . "\n"; print "JPY->USD : " . Finance::Currency::Convert::Yahoo::convert(1,'JPY','USD') . "\n"; print "EUR->JPY : " . Finance::Currency::Convert::Yahoo::convert(1,'EUR','JPY') . "\n"; print "EUR->USD : " . Finance::Currency::Convert::Yahoo::convert(1,'EUR','USD') . "\n";


■ 参考となるWebページ
ユーザー領域にCPANをインストールする方法
さくらインターネットサーバでのCPAN導入を完全に手順化して見た。
@INCの追加

■ 関連項目
(PHP) レンタルサーバでPEARをユーザディレクトリにインストール