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をユーザディレクトリにインストール