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

StackOverflow https://stackoverflow.com/questions/260593

  •  06-07-2019
  •  | 
  •  

質問

本番環境を複製して多くのテスト/シット環境を作成するタスクを担当しています。

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

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

役に立ちましたか?

解決

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

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

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

CPAN :: Mini :: Injectなどのツールは、独自のCPANのセットアップに役立ちます。基本的な例については、 Slideshareでの講演をご覧ください。また、 Vimeoのマイビデオ。 <!> quot; CPAN <!> quot;があるものをすべて見てください。または<!> quot; BackPAN <!> quot;タイトルに。 Perl Review にもいくつかの情報があるかもしれません。 :)

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

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

他のヒント

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/

これは<!> quot;の下の CPAN.pm FAQ にあります。モジュールの「開発者向けリリース」?<!> quot;

cpan install App::cpanminus
cpanm Your::Module@1.23

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

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

Carton はここで言及する価値があります。 App::cpanminusは、App::cpanoutdatedperlbrewPinto etと同じスタイルの比較的最近のツールです。 著者(宮川)はそれを<!> quot; alpha <!> quot;と呼んでいます。品質ですが、現状のカートンでさえ、マシン間でバージョン調整されたモジュールの複数の環境の保守を簡素化するのに役立ちます。

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

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

免責事項:Stratopanを運営しています。

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

これを行うと、ファイルをすばやく/簡単に調整して、開発環境またはステージング環境で特定のモジュールのアップグレードをテストできるという利点があります-プライベートCPANミラーではできません(複数のミラーを作成せずに)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top