7

私は、Catalyst、Open Street Map、および多数のモジュールを使用した小さなオープンソース Perl プロジェクトに取り組んでいます。私の目的は車輪を再発明することではないので、CPAN にあるモジュールをできるだけ多く使用するようにしています。

このすべてのものは、cpanm と local::lib を介してインストールされています。何か新しいものが必要になるたびに、いくつかのモジュールと依存関係をインストールします (cpanm ではとても簡単です)。今、私は自分のプロジェクトを複製する人々が、恐ろしい頭痛の種なしに数十のモジュールをインストールできる方法を自問しています。

このためのベストプラクティスは何ですか? 必要なすべてのモジュールを Makefile.pl にリストすることになっていますか? 私はこのプロジェクトに懸命に取り組み、多くの優れた慣行に従おうとしましたが、この特定の点で間違いを犯したと感じています (これについて考えないでください)。

この問題についてアドバイスが必要です。すべてが魔法のように思えて、'require' キーワードを使用して Makefile にモジュール名をリストするだけでは不十分だと思うからです。プロジェクトにすべての依存関係を含めて、後で使用するためにこの巨大なパッケージをすべてコミットする必要がないことも願っています。

4

3 に答える 3

4

Catalyst を使用する場合、必要なモジュールを依存関係として、Catalyst アプリケーション用に作成された Makefile.PL に追加できます。

于 2013-03-21T21:21:05.637 に答える
1

カートンをのぞき見することをお勧めします(素晴らしいcpanmと同じ作者によるものです)。

私は Ruby のバンドラーの大ファンで、カートンのドキュメントでは「Perl 用のバンドラー」と説明されています。しばらく前に実験しましたが、非常に有望に見えました。

于 2013-03-21T22:10:33.703 に答える
1

Makefile.PL直接必要なモジュール (つまり、自分のモジュールuseまたは自分のモジュールにあるモジュール)のみを ( に) リストする必要がありrequireます。間接的に (つまり、使用するモジュールによって) 必要とされるモジュールについて心配する必要はありません。それがインストラクターの仕事です。

使用するモジュールのリストを取得するには、もちろんリストを手動でコンパイルできます。しかし、The Definitive Guide to Catalystをお持ちの場合は、129 ページに便利な Bash 関数がありますが、ここで再現できるかどうかはわかりません。Perl::PrereqScanner::Appもあり、直接は使用していませんが、Dist::Zilla で使用されています。

FWIW、Dist::Zillaを使用してディストリビューションを管理する場合 (CPAN にアップロードしないプライベート プロジェクトでもこれを行います)、依存関係を追跡できます (デフォルトでは追跡します)。

于 2013-11-15T09:38:47.763 に答える