4

口頭伝承や伝聞に頼ることなく、誰もが CPAN をゼロから再構築するためにそれを使用できるほど詳細に、CPAN がどのように機能するかについての信頼できる、および/または事実上の文書の詳細はありますか? ディレクトリ構造、ディストリビューションにあるはずのファイル、バージョン番号が実際にどのように機能するか、誰が何をアップロードでき、何を正確に search.CPAN.org Web サイトにリストするかなどを文書化する何か?

4

3 に答える 3

7

CPAN は、ミラー化されたファイル リポジトリにすぎません。ファイルは PAUSE を使用してアップロードされます。一時停止については、すべてではないにしてもほとんどの質問に答えます。

search.cpan.org についても言及しましたが、それは CPAN の一部ではありません。これは、CPAN にアクセスする多くのツールの 1 つにすぎません。Web サイトhttps://metacpan.org/およびコマンド ライン ツールcpanなどcpanmがあります。

于 2013-01-21T01:27:57.737 に答える
2

あなたの質問はさまざまなことに触れています...

"A" CPAN は、特定の構造といくつかの特別なファイルを持つ単なるディレクトリです。構造とファイル形式は正式に定義されていませんが、かなり単純です。これらのファイルを作成できるいくつかのモジュール (ほとんどが CPAN:: 名前空間にあります) があります。最も重要なファイルはmodules/02packages.details.txt.gzファイル (別名「インデックス」) で、モジュール名をそれらを含む配布アーカイブのパスにマップします。インデックス内のパスは、 authors/idディレクトリからの相対パスであると見なされます。そして、それはほとんどそれです。authors/01mailrc.txt.gzmodules/ 03modlist.data.gz などのその他のファイル存在し、「有効な」形式である必要がありますが、実際のデータは必要ありません。モジュールインストーラーの基本的な操作には必須ではありません。

「The」CPAN は、コミュニティがディストリビューションを共有する中心的な CPAN です。作成者は、分布を分析してインデックスを生成する作業を行うPAUSEを介して、自分の作業を「その」CPAN に入れることができます。Aboutページでは、一時停止がどのように機能するかを高レベルで説明しています。"The" CPAN は実際にはいくつかの異なる場所にミラーリングされているため、インストーラーをそれらのいずれかに向けることができます。独自のミラーも簡単に作成できます。 search.cpan.orgmetacpanは、「その」CPAN の上に構築された検索およびブラウジング サービスです。したがって、ディストリビューションを一時停止にアップロードすると、(最終的には) それらのサイトにも表示されます。

ただし、実際にディストリビューションを作成する方法はもう少し複雑です。繰り返しになりますが、ディストリビューションがどのようなものであるべきかについての正式な定義はありません。PAUSE は実際には何でも受け入れ、それを理解しようと懸命に努力します。しかし、ほぼすべての作成者は、 Module::BuildExtUtils::MakeMakerなどのツールを使用してほとんどの作業を行っています。これらのツールは、コードを編成するための規則を規定し、PAUSE や他のシステムがディストリビューションを理解するのに役立つファイルを生成できます。さらに高いレベルでは、Module::StarterDist::Zillaなどのツールがさらに多くのインフラストラクチャを生成します。それらのいずれかを使用する必要はありませんが、使用する必要がありますそれらの少なくとも1つ。

あなたの目標が、選択したディストリビューション (おそらく、独自のプロプライエタリ モジュールと "the" CPAN のオープン ソース モジュール) を使用して独自の CPAN を構築することである場合、 Pintoはあなたが探しているものかもしれません。Pinto は、任意のディストリビューションを使用して、CPAN のようなローカル リポジトリを構築します。Pinto は、依存関係を操作し、アップストリーム リポジトリ (通常は「CPAN」) からフェッチする方法を知っています。Pinto には、依存関係の進化に合わせて変更を管理するのに役立つツールがあります。また、既存の Perl モジュール インストーラーとすべて互換性があるため、ローカル リポジトリでそれらを「ポイント」するだけです。

于 2013-02-07T21:57:07.113 に答える
1

MyCPAN、Pinto、StratoPAN など、PAUSE が提供し、クライアントが期待するインデックス ファイルを使用して CPAN のようなリポジトリを作成するさまざまなプロジェクトがあります。何を達成しようとしていますか?

于 2013-02-06T19:36:29.597 に答える