ルートアクセス権がない共有サーバーにPerlモジュールをインストールしたい。これどうやってするの?彼らはまた、CPANの古いバージョンを持っているようです(コマンドを実行するとそれについて文句を言います)、rootアクセスを必要とせずに私のアカウントから使用されているCPANコマンドを更新することは可能ですか?
私がこれまでに見つけた最も簡単な方法は、言うことです
wget -O- http://cpanmin.us | Perl - -l ~/Perl5 App::cpanminus local::lib
eval `Perl -I ~/Perl5/lib/Perl5 -Mlocal::lib`
echo 'eval `Perl -I ~/Perl5/lib/Perl5 -Mlocal::lib`' >> ~/.profile
echo 'export MANPATH=$HOME/Perl5/man:$MANPATH' >> ~/.profile
これは、プロファイルの名前が.profile
であると想定しているため、.bash_profile
、.bashrc
などに変更する必要がある場合があります。その後、次のようにしてモジュールをインストールできます。
cpanm Module::Name
ルートディレクトリにインストールした場合と同じ方法で使用します。
以下は、上記のコマンドが行うことの簡単な説明です。
wget -O- http://cpanmin.us
はcpanm
の最新バージョンを取得してSTDOUT
に出力し、Perl - -l ~/Perl5 App::cpanminus local::lib
にパイプされます。最初の-
はPerl
にプログラムが入ってくることをSTDIN
に伝えるため、ダウンロードしたPerl
のバージョンをcpanm
で実行します。 Perl
は、残りの引数をcpanm
に渡します。 -l ~/Perl5
引数は、Perlモジュールをインストールする場所をcpanm
に指示し、他の2つの引数はインストールする2つのモジュールです。 [App::cpanmins
] 1 はcpanm
をインストールするパッケージです。 local::lib
は、ローカルディレクトリでモジュールを実行するために必要な環境変数を管理するヘルパーモジュールです。
それらのモジュールがインストールされた後、実行します
eval `Perl -I ~/Perl5/lib/Perl5 -Mlocal::lib`
ローカルモジュールを使用するために必要な環境変数を設定し、
echo 'eval `Perl -I ~/Perl5/lib/Perl5 -Mlocal::lib`' >> ~/.profile
次回ログイン時にそれらを使用できるようにするため。
echo 'export MANPATH=$HOME/Perl5/man:$MANPATH' >> ~/.profile
うまくいけば、manにローカルモジュールのmanページを見つけさせるでしょう。
http://novosial.org/Perl/life-with-cpan/non-root/
両方の命令セットの主なステップには、 local :: lib module が含まれます
私の知る限り、CPANロジックはPerlモジュール(CPAN.pm)に含まれています。つまり、他のPerlモジュールと同じように、ローカルディレクトリに新しいものを簡単にインストールすることもできます。
また、非標準の場所にモジュールをインストールしたら、非標準の場所からライブラリをロードする際の次の2つの質問を確認してください(情報の一部は既に上記のリンクから入手できます)。
Perlプログラムは、使用するPerlモジュールを含むファイルの場所をどのようにして知るのですか?
Perlの@INCはどのように構築されますか? (別名Perlモジュールの検索場所に影響を与えるすべての方法は何ですか?)
完全を期すため、OSXでcpanm
をインストールするプロセスは、Perl5
下 ~/Library
。
curl -L http://cpanmin.us | Perl - -l ~/Library/Perl5 App::cpanminus local::lib
eval `Perl -I ~/Library/Perl5/lib/Perl5 -Mlocal::lib=~/Library/Perl5`
echo 'eval `Perl -I ~/Library/Perl5/lib/Perl5 -Mlocal::lib=~/Library/Perl5`' >> ~/.bash_profile
Cpanminusがインストールされているモジュールのマニュアルページも読みたい場合は、選択したライブラリパスの正しいサブディレクトリがMANPATHにあることも確認する必要があります。したがって、cpanmのインストールプロセスを示す上記のソリューションには、次の追加コマンドが必要です。
export MANPATH=$HOME/Library/Perl5/man:$MANPATH' >> ~/.bash_profile