CPAN shellを使わない(非対話的な方法での)CPANの使い方を教えてください。


具体的には、cpanコマンドやperl -e shell -MCPAN等を実行せずに、
ユーザー領域へのCPAN環境のセットアップを行い、
その設定を用いて、適当なモジュールをダウンロードしてインストールする方法が
書かれているページがあればいい感じです。

perlのバージョンは5.8,
CPANモジュールそのものは当然既にインストールされています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/01/29 11:24:56
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

suVeneのあれ: CPAN→Plaggerインストール(レンタルサーバさくら)

このページとそのリンク先が参考になると思う。

なぜか FreeBSD の情報が多いようなので、ports 云々のところは無視していいと思う。

id:shidho

>その為にはインストールするサーバに Telnet or SSHでログインできて make が使える事が必須である。

と書いてあるようですが、

この回答は"対話的な方法でなければモジュールはCPANインストール出来ない"

という主旨だと理解して良いですかね?

2008/01/22 13:22:35
id:likk No.2

回答回数8ベストアンサー獲得回数0

ポイント10pt

先日 CPANを使わずにTerm-Screenをインストールしたときにログが残っていたので、貼り付けます。

wget http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/Term-Screen-1...

tar xvzf Term-Screen-1.03.tar.gz

cd Term-Screen-1.03

perl ./Makefile.PL --PREFIX=$HOME/local/

make

make test

make install

wget ~ モジュールをhttpでダウンロード

#tar cd は説明省略

perl ~ --PREFIXでインストール先を自分のユーザ領域に指定  /<ログインディレクトリ>/<インストールしたいディレクトリ>

#make ~ make install は説明省略

参考: http://support.speedex.ne.jp/v1/perl/modules.html

"./Makefile.PL --PREFIX" でぐぐって見るといいかもしれません。

id:shidho

こちらも、実際にはCPANモジュールを使っていないので、

"CPANモジュールを使うなら対話的方法しかない"という回答と

受け取ってしまってよいですか?

2008/01/22 13:24:13
  • id:b-wind
    >この回答は"対話的な方法でなければモジュールはCPANインストール出来ない"
    No.
    別に telnet や ssh は対話的な方法でなくても使える。
    また、実際には同じことをプログラムから実行してもよいので、telnet や ssh は必須ではない。
    あった方が楽なのは確かだが。
  • id:shidho
    >別に telnet や ssh は対話的な方法でなくても使える。
    >また、実際には同じことをプログラムから実行してもよい

    その辺を解説しているサイトがあったら教えて頂ければ幸いです。
  • id:likk
    すいません、質問の趣旨を履き違えていたので、回答取り下げ致します。ポイントも不要です。
  • id:b-wind
    >その辺を解説しているサイトがあったら教えて頂ければ幸いです。
    残念ながらうまく説明しているサイトは見つからなかった。

    ごく簡単な例になるが、ssh の使える環境なら、
    > ssh user@host.example.com 'perl -MCPAN -e "install Jcode;"'
    とかやればよいかと。

    いまいちどういう環境から呼び出そうとしているのかわからないので的外れかもしれませんが。
  • id:shidho
    世の中には、使えるモジュールとしてCPANが掲示されているのにも関わらず、
    telnetもsshも出来ないレンタルサーバというのがあるので、
    ここにCPAN経由でモジュールをインストール出来るかどうかを確かめたかったわけです。

    例えば、(以下のコードはデタラメです)
    #!/usr/bin/perl
    use CPAN;
    my $cpan = new CPAN;
    $cpan->config(filename => ".cpanrc");
    print "Content-Type: text/plain\n\n";
    print $cpan->install("Jcode");
    exit;

    みたいな形でインストール作業が出来るならターミナルは要らないなと思ったのです。
  • id:b-wind
    可能か不可能かなら可能。だけどひどくめんどくさい。
    設定ファイルだけ作ってアップロードしておけば、

    #!/usr/bin/perl
    use CPAN;
    print "Content-Type: text/plain\n\n";
    print install("Jcode");
    exit;

    でいけなくはない。

    ただ、コマンド自体は実行できてもコンパイル用のライブラリ等が不足していることも多いだろうから、
    現実的には同じか近いOSを用意して、そこでインストールしたモジュールを FTP なりでアップロードしたほうが早いかな。
    PurePerl なモジュールなら、.pm ファイルをコピーするだけですむし。
  • id:shidho
    となると、あとは設定ファイルを相手先で作れれば、
    ライブラリがあるかないか、を含めて解決可能かもしれませんね。

    対話的にコンフィグする際には、コンパイラの有無とかmakeの有無なんかも確認しているので。

    PurePerlモジュールで.pmファイルをコピーするのはよくやります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません