cpanの途中の"Killed"について
自分の浅い知識では手詰まりとなりどなたか助けていただきたいです。
さくらのレンタルサーバのスタンダードプランにおいて、"Facebook::Graph"のモジュールを使いたいので、まずはユーザ領域にCPANをインストールするところから始めているのですが、CPANの途中でどうしても"Killed"となり中断され、先に進めないでいます。
手順としては、以下のサイトを参考にしています。
http://www.ookawara.com/archives/155
http://www.otsune.com/bsd/tips/usercpaninstall.html
http://d.hatena.ne.jp/charsbar/20080222/1203662508
■手順1
さくらのレンタルサーバ(スタンダードプラン)でSSHとFTPで接続。
仮にユーザディレクトリ名を「hoge」とした場合、
/home/hoge/直下には、まだ.cpanフォルダもlocalフォルダも無い状態です。
■手順2
% perl -MCPAN -e shell
と打ち、最初の
Would you like me to configure as much as possible automatically?
にNoで答えて、手動で設定をしていきます(基本的にはほとんどEnterキー押下)。
■手順3
/home/hoge/.cpan/CPAN/MyConfig.pm
をFTPでダウンロードして、以下を書き換え
-----------
'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/local],
'makepl_arg' => qq[PREFIX=~/local],
'mbuildpl_arg' => qq[./Build --install_base $ENV{HOME}/local],
-----------
結果、MyConfig.pm全体の中身は以下のようになっています。
これを再度FTPで上書きアップロードします。
-----------
$CPAN::Config = {
'applypatch' => q[],
'auto_commit' => q[0],
'build_cache' => q[10000],
'build_dir' => q[/home/hoge/.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],
'colorize_output' => q[0],
'commandnumber_in_prompt' => q[1],
'connect_to_internet_ok' => q[1],
'cpan_home' => q[/home/hoge/.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/hoge/.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/hoge/.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[SITEPREFIX=$ENV{HOME}/local],
'make_install_make_command' => q[/usr/bin/make],
'makepl_arg' => q[PREFIX=~/local],
'mbuild_arg' => q[],
'mbuild_install_arg' => q[],
'mbuild_install_build_command' => q[./Build],
'mbuildpl_arg' => q[./Build --install_base $ENV{HOME}/local],
'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/hoge/.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' => [q[ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/], q[ftp://ftp.u-aizu.ac.jp/pub/CPAN/], q[ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/]],
'use_sqlite' => q[0],
'wget' => q[/usr/local/bin/wget],
'yaml_load_code' => q[0],
'yaml_module' => q[YAML],
};
1;
__END__
-----------
■手順4
/home/hoge/.cshrc
をFTPでダウンロードしてきて以下を追記して再びFTPで上書きアップロード。
-----------
setenv PATH $HOME/local/bin:$PATH
setenv PERL5LIB $HOME/local/lib/perl5:$HOME/local/lib/perl5/site_perl
setenv PKG_DBDIR $HOME/local/var/db/pkg
setenv PORT_DBDIR $HOME/local/var/db/pkg
setenv INSTALL_AS_USER
setenv LD_LIBRARY_PATH $HOME/local/lib
-----------
■手順5
%source .cshrc
を実行して変更を反映して、さらに
mkdir ~/local
mkdir -p ~/local/var/db/pkg
を実行してlocalフォルダを準備します。
■手順6
cpan -i Bundle::CPAN
を実行します。
すると、
Going to write /home/hoge/.cpan/Metadata
CPAN: YAML loaded ok (v0.68)
CPAN: LWP::UserAgent loaded ok (v5.835)
Fetching with LWP:
ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/authors/id/A/AN/ANDK/Bundle-CPAN-1.861.tar.gz
の後に、
Killed
と表示され、処理が終わってしまいます。
「.cpan」と「local」のフォルダを削除して、同じ手順で何度試しても、手順6でKilledとなり先に進めないでいます。
申し訳ありませんが、なぜ「Kiled」となるのかヒントをいただきたいです。
お礼
回答ありがとうございます。 >ソフトのソースからのコンパイルでしょうか。 はい >makeすると、数個~数百個のソースプログラムを順にコンパイルします。途中でmakeを中断したときは、再度makeを実行するとすでにコンパイルしたものは再コンパイルはしません。 >おそらく一定以上のCPUタイムを使うとkillされるのではないかと思いますので、何度もmakeを続けると前回の続きから制限時間の範囲内でファイルのコンパイルを続けるので、いずれは完了します。 >make clean でコンパイル結果を削除できますので、おそらくは >make clean ; make >を繰り返すと、何度やってもkillされるかと思います。 なるほど、と思いました。 説明大変分かりやすかったですー