私はこのエラーを受け取ります:
Can't locate Foo.pm in @INC
ダウンロード、解凍、作成などよりも簡単にインストールできますか?
Unix:
通常、シェルでcpanを開始します。
# cpan
そしてタイプ
install Chocolate::Belgian
または短い形式で:
cpan Chocolate::Belgian
Windows:
WindowsでActivePerlを使用している場合、- PPM(Perl Package Manager) にはCPAN.pmと同じ機能が多くあります。
例:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
CPAN FAQの Perlモジュールのインストール方法 を参照してください
多くのディストリビューションは、多くのPerlモジュールをパッケージとして出荷しています。
apt-cache search 'Perl$'
pacman -Ss '^Perl-'
dev-Perl
always自動(セキュリティ)updatesと使いやすさremoval。 cpanツール自体では、これはかなり難しい場合があります。
Gentooには、g-cpanという素敵なツールがあり、CPANからモジュールをビルド/インストールし、Gentooパッケージを作成します(- ebuild ).
# cpanm Chocolate::Belgian
何かをインストールするのに最適です。 CPANやCPANPLUSのより複雑な機能は提供しないため、インストールするモジュールがわかっていれば、簡単に使用できます。 cpanminusをまだ取得していない場合は、次のように入力します。
# cpan App::cpanminus
それをインストールします。
Cpanをまったく使用せずにインストールすることもできます。基本的なbootstrapプロシージャは、
curl -L http://cpanmin.us | Perl - --Sudo App::cpanminus
詳細については、App :: cpanminusページにアクセスして、インストールに関するセクションを参照してください。
私は、Sudoでcpanを1回実行することを提案している人々に注目しています。以前はシステムディレクトリにインストールする必要がありましたが、最新バージョンのCPANシェルでは、インストールにSudojustを使用するように設定できます。これは、テストがルートとして実行されないことを意味するため、はるかに安全です。
古いCPANシェルを使用している場合は、新しいcpanをインストールするだけで(「CPANのインストール」)、シェルをリロードすると、これらの新しいディレクティブを構成するように求められます。
最近では、古いCPANを備えたシステムを使用している場合、最初に行うことは、シェルを更新してセットアップすることです。これにより、通常のユーザーとしてcpanのほとんどの作業を実行できます。
また、Windowsユーザーが strawberry Perl を調査することを強くお勧めします。これは、事前構成されたCPANシェルおよびコンパイラーとともにパッケージ化されたPerlのバージョンです。また、外部Cライブラリの依存関係、特にXML :: Parserを含む、コンパイルが困難なPerlモジュールも含まれています。これは、モジュールのインストールに関しては、他のすべてのPerlユーザーと同じことを実行できることを意味し、物事はより頻繁に「正常に動作する」傾向があります。
Ubuntuを使用していて、事前にパッケージ化されたPerlモジュール(たとえば、geo :: ipfree)をインストールする場合は、これを試してください。
$ apt-cache検索Perl geo :: ipfree libgeo-ipfree-Perl-IPアドレスの国の検索Perlモジュール $ Sudo apt-get libgeo-ipfree-Perl をインストールします
数人の人がcpanユーティリティについて言及しましたが、それはシェルを起動するだけではありません。インストールしたいモジュールを指定するだけで、作業を実行できます。
$Prompt> cpan Foo::Bar
引数を指定しないと、CPAN.pmシェルが起動します。これはUnix、Macで動作し、Windows(特にStrawberry Perl)では問題ありません。
Cpanツールでもできることは他にもいくつかあります。現在の機能の概要は次のとおりです(CPAN.pmおよびPerlに付属している機能よりも新しい場合があります)。
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Sudo Perl -MCPAN -e 'install Foo'
はい、CPANを使用することもできます も参照してください。ルートまたはSudoアクセスなしでCPANを使用する方法を示します。
Ottoは 良い提案 を作成しました。これは、他のDebian派生物と同様に、Debianでも機能します。不足している部分は、apt-cache検索で何かが見つからない場合の対処方法です。
$ Sudo apt-get install dh-make-Perl build-essential apt-file
$ Sudo apt-file update
次に、ランダムモジュールをインストールするたびにインストールします。
$ cd ~/some/path
$ dh-make-Perl --build --cpan Some::Random::Module
$ Sudo dpkg -i libsome-random-module-Perl-0.01-1_i386.deb
これにより、Some :: Random :: Moduleを取得するためにインストールできるdebパッケージが提供されます。ここでの大きな利点の1つは、モジュール自体に加えて、マニュアルページとサンプルスクリプトがディストリビューションの選択した場所に配置されることです。ディストリビューションにSome :: Random :: Moduleの新しいバージョンの公式パッケージが付属している場合、apt-get upgradeを実行すると自動的にインストールされます。
すでに答えられ、受け入れられた答え-しかしとにかく:
私見CPANモジュールをインストールする最も簡単な方法は(UNIXのようなシステムで、Windowsのことを知らない):
curl -L http://cpanmin.us | Perl - --Sudo App::cpanminus
上記はcpanm
と呼ばれる「ゼロ構成CPANモジュールインストーラー」をインストールしています。 (インストールには数分かかることがあります-プロセスを中断しないでください)
および後-単に:
cpanm Foo
cpanm Module::One
cpanm Another::Module
CPAN.pm
には多くの推奨事項がありますが、これは素晴らしいことですが、Perl 5.10
を使用している場合は、CPANPLUS.pm
に似ていますが、CPAN.pm
にもアクセスできます。
そしてもちろん、古いバージョンのPerlをまだ使用している人はCPAN
で利用できます。試してみませんか:
$ cpan CPANPLUS
多くの場合、cpan installコマンドが"make test has bad statusを返し、強制的にインストールしない"のようなメッセージで失敗することがあります
その場合、モジュールをインストールする方法は次のとおりです。
Perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"
Ubuntuでは、ほとんどのPerlモジュールがすでにパッケージ化されているため、インストールはコンパイルが必要な他のほとんどのシステムよりもはるかに高速です。
たとえば、コマンドプロンプトでFoo::Bar
をインストールするには、通常は次のようにします。
Sudo apt-get install libfoo-bar-Perl
残念ながら、すべてのモジュールがその命名規則に従っているわけではありません。
それでも動作するはずです:
cpan -i module_name
Cpanコマンドをcpan Modulename
として使用します
$ cpan HTML::Parser
依存関係を自動的にインストールするには、以下に従ってください
$ Perl -MCPAN -e Shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
exit
App :: cpanminus を選択すると、依存関係が自動的にインストールされます。ただやる
$ cpanm HTML::Parser
私にとって最も簡単な方法はこれです:
Perl_MM_USE_DEFAULT=1 Perl -MCPAN -e 'install DateTime::TimeZone'
a)再帰的な依存関係の自動検出/解決/インストール
b)セットアップスクリプトに適したシェルオンライン
私が知っている2つの方法:
SING PPM:
Windows(ActivePerl)でppmを使用しました
コマンドラインから「ppm」と入力します。 ppmプロンプトで...
ppm> install foo
または
ppm> search foo
利用可能なfooモジュールのリストを取得します。すべてのコマンドに対してhelpと入力します
CPANを使用:
このようにCPANを使用することもできます(* nix systems):
Perl -MCPAN -e 'Shell'
プロンプトが表示されます
cpan>
プロンプトで...
cpan> install foo (again to install the foo module)
hを入力して、cpanのコマンドのリストを取得します
Fedora Linux
またはEnterprise Linux
では、yum
はPerlライブラリの依存関係も追跡します。したがって、Perlモジュールが使用可能であり、一部のrpmパッケージがその依存関係をエクスポートする場合、適切なパッケージがインストールされます。
yum install 'Perl(Chocolate::Belgian)'
(おそらくPerl-Chocolate-Belgianパッケージ、またはChocolateFactoryパッケージ)
Fedoraでは次を使用できます
# yum install foo
fedoraにモジュール用の既存のパッケージがある限り。
Cpanシェルが使用するように構成されていないカスタムの場所に新しいモジュールを配置する場合は、おそらく次の方法が便利です。
#wget <URL to the module.tgz>
##unpack
Perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
yum search foo
を使用して相対Perlモジュールを検索し、yum install xxx
を使用してインストールできる場合があります。
あなたはすでにあなたの答えを持っているようですが、私はチャイムを入れると思った。これはUbuntu(またはDebianサーバー)上のいくつかのスクリプトで行うこと
#!/usr/bin/Perl
use warnings;
use strict;
#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'} = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';
#Fill this with the Perl modules required for your project
my @Perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::ProcessTable);
chomp(my $curl = `which curl`);
if(!$curl){ system('apt-get install curl -y > /dev/null'); }
chomp(my $cpanm = system('/bin/bash', '-c', 'which cpanm &>/dev/null'));
#installs cpanm if missing
if($cpanm){ system('curl -s -L http://cpanmin.us | Perl - --Sudo App::cpanminus'); }
#loops through required modules and installs them if missing
foreach my $x (@Perl){
eval "use $x";
if($@){
system("cpanm $x");
eval "use $x";
}
}
これは私にとってはうまくいきます。多分ここに何か使えるものがあります。
WindowsでPerlのActiveStateディストリビューションを使用している場合は、 ppm コマンドを使用します。
シェルでcpan Foo::Bar
を実行するだけで目的が達成されます。