web-dev-qa-db-ja.com

Perlモジュールセットの特定のバージョンをインストールするにはどうすればよいですか?

私は、実稼働環境を複製して多くのテスト/シット環境を作成する仕事をしています。

私がする必要があることの1つは、長年にわたってインストールされたすべてのモジュール(内部および外部モジュールを含む)でPerlを構築することです。 CPAN.pm autobundleを使用することもできますが、これにより、テスト環境に、実稼働環境にある外部モジュールのより新しいバージョンが含まれることになります。

(多くの)バージョン固有のPerlモジュールを取得してインストールする最も簡単で最適な方法は何ですか?.

71
Matthew Watson

必要なものだけを使って独自のCPANミラーを作成します。 Stratopan.com 、サービス、および Pinto (その上に構築されたツール)は、そのために役立ちます。

PAUSEは最新バージョンのみにインデックスを付けるため、CPANツールはディストリビューションの最新バージョンのみをインストールします。ただし、必要なディストリビューションを正確に持つ独自のプライベートCPANを作成できます。必要なものだけを備えた独自のCPANミラーを作成したら、そのミラーのみにCPANツールを指定して、それらのバージョンのみをインストールします。それについては後ほど説明します。

今、あなたはそれのいくつかのバージョンを持ちたいです。好きなだけミラーを作成できます。また、ミラーをソース管理に配置して、好きなバージョンのミラーをチェックアウトすることもできます。

CPAN :: Mini :: Injectなどのツールは、独自のCPANのセットアップに役立ちます。基本的な例については Slideshareでの私の話 を、一部のデモンストレーションについては Vimeoでの私の動画 をご覧ください。タイトルに「CPAN」または「BackPAN」が含まれているものを見ます。 Perl Review にもそれについて何か書いているかもしれないと思うか、次の号までにすべきです。 :)

最近、私はランダムなディレクトリを見て、その中のPerlディストリビューションを見つけ、必要な構造とインデックスファイルを作成できるdpan(DarkPAN用)と呼ばれるプログラムに取り組んでいます。 dpanを実行すると、CPANクライアントを指すURLが取得され、すぐに使用できます。 Github にあるMyCPAN-Indexerプロジェクトの一部です。私は主に企業のクライアントと協力してセットアップをカスタマイズしているため、監視されていない一般利用の準備が整っていません。もしそれに興味があれば、遠慮なく質問してください。

また、最近リリースした CPAN :: PackageDetails は、適切なインデックスファイルの作成に役立ちます。まだまだ若いですが、何か特別なものが必要な場合は、お尋ねください。

38
brian d foy

bdfoyには最適な大規模ソリューションがありますが、いくつかのモジュールをインストールしたいだけであれば、CPANシェルにtarballへのパスを参照して特定のディストリビューションをインストールするように依頼できます(CPANツリーの最上部からの相対パス)。

cpan> install MSCHWERN/Test-Simple-0.62.tar.gz

BackPANへのURLをURLリストに投げると、古いバージョンをインストールできます。

cpan> o conf urllist Push http://backpan.Perl.org/

これは CPAN.pm FAQ の「モジュールの「開発者向けリリース」をインストールする方法は?」にあります。

105
Schwern
cpan install App::cpanminus
cpanm Your::[email protected]

(他の回答で参照されているように、Cartonはcpanmを使用して明示的なバージョン要件を解決します。)

29
Ether

[もう5年が経ちますが、これはよく寄せられ、よく答えられた質問であり、多くの意見がありました。このページは引き続きGoogle検索で表示される必要があるため、更新しても問題はありません。]

Carton はここで言及する価値があります。 Cartonは、App::cpanminusApp::cpanoutdatedperlbrewetと同じスタイルの比較的最近のツールです。 al。著者(宮川)は、これを「アルファ」品質と呼んでいますが、現在の状態のカートンでさえ、マシン間でバージョン調整されたモジュールの複数の環境の保守を簡素化するのに役立ちます。

Pinto も、いくつかの回答に関連する別の最近のツールです(実際、回答者の1人が貢献者です)。

9
G. Cito

Stratopan.com は別の選択肢です。 Stratopanは、クラウドでプライベートCPANを提供します。 Stratopanリポジトリに特定のバージョンのモジュール(およびその依存関係)を入力し、標準のPerlツールチェーンを使用してインストールできます。リポジトリはyouが変更を決定したときにのみ変更されるため、必要なモジュールのバージョンを常に取得できます。

免責事項:私はStratopanを運用しています

すべてのモジュールと目的のバージョンをリストするcpanfileを作成するようです(== <version>特定のリリースにロックする構文)もここでうまく機能します。これは、モジュールのインストールにCartonまたはcpanmを使用することを意味します。

これを行うと、ファイルをすばやく/簡単に微調整して、開発環境またはステージング環境で特定のモジュールのアップグレードをテストできるという利点があります。

2
Randall