パッケージの概念 - Amazon CodeCatalyst

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パッケージの概念

でパッケージを管理、公開、または使用する際に知っておくべき概念と用語をいくつか紹介します CodeCatalyst。

パッケージ

パッケージは、ソフトウェアのインストールと依存関係の解決に必要なソフトウェアとメタデータの両方を含むバンドルです。 は npm パッケージ形式 CodeCatalyst をサポートします。

パッケージは以下で構成されます。

  • 名前 (例えば、 webpackは一般的な npm パッケージの名前)

  • オプションの名前空間 ( など@types@types/node

  • 一連のバージョン (、、 1.0.0など1.0.11.0.2

  • パッケージレベルのメタデータ (npm dist タグなど)

パッケージ名前空間

一部のパッケージ形式は、階層パッケージ名をサポートしてパッケージを論理グループに整理し、名前の衝突を回避します。同じ名前のパッケージは、異なる名前空間に保存できます。例えば、npm はスコープをサポートし、npm パッケージのスコープ@types/node@typesで、名前は ですnode。他にも多くのパッケージ名が@typesスコープにあります。では CodeCatalyst、スコープ (「タイプ」) はパッケージ名前空間と呼ばれ、名前 (「ノード」) はパッケージ名と呼ばれます。Maven パッケージの場合、パッケージ名前空間はMaven GroupIDに対応します。Mavenパッケージorg.apache.logging.log4j:log4j は、groupID (パッケージの名前空間)がorg.apache.logging.log4j、artifactID (パッケージ名) がlog4jです。Python などの一部のパッケージ形式は、npm scope や Maven groupID のような概念を持つ階層名をサポートしていません。パッケージ名をグループ化する方法がない場合は、名前の衝突を回避するのがより難しい場合があります。

パッケージバージョン

パッケージバージョンは、@types/node@12.6.9のようにパッケージの特定のバージョンを識別します。バージョン番号の形式とセマンティクスは、パッケージ形式によって異なります。例えば、npmパッケージのバージョンはセマンティックバージョニングの仕様 に準拠する必要があります。では CodeCatalyst、パッケージバージョンはバージョン識別子、 package-version-level メタデータ、およびアセットのセットで構成されます。

アセット

アセット CodeCatalyst は、npm ファイルや Maven や .tgz ファイルなど、パッケージバージョンに関連付けられた に保存されている個々のPOMJARファイルです。

パッケージリポジトリ

CodeCatalyst パッケージリポジトリには、パッケージバージョン を含む一連のパッケージ が含まれており、それぞれがアセットのセット にマッピングされます。パッケージリポジトリは polyglot です。つまり、1 つのリポジトリにサポートされている任意のタイプのパッケージを含めることができます。各パッケージリポジトリは、 CLIs (、)nuget、、Maven (dotnet)、Python CLI pip ( CLIおよび npm mvn) などの NuGet ツールを使用してパッケージを取得および公開するためのエンドポイントを公開しますCLIstwine。各スペースに作成できるパッケージリポジトリの数など CodeCatalyst、 のパッケージクォータについては、「」を参照してくださいパッケージのクォータ

アップストリームとして設定することで、パッケージリポジトリを別のリポジトリにリンクできます。リポジトリをアップストリームとして設定すると、アップストリームの任意のパッケージと、チェーン内の追加のアップストリームリポジトリを使用できます。詳細については、「アップストリームリポジトリ」を参照してください。

ゲートウェイリポジトリは、公式の外部パッケージ機関からパッケージをプルして保存する特殊なタイプのパッケージリポジトリです。詳細については、「ゲートウェイリポジトリ」を参照してください。

アップストリームリポジトリ

を使用して CodeCatalyst 、2 つのパッケージリポジトリ間にアップストリーム関係を作成できます。パッケージリポジトリは、含まれるパッケージバージョンにダウンストリームリポジトリのパッケージリポジトリエンドポイントからアクセスできる場合、別の のアップストリームです。アップストリーム関係では、2 つのパッケージリポジトリの内容は、クライアントの観点から効果的にマージされます。

例えば、パッケージマネージャーがリポジトリに存在しないパッケージバージョンをリクエストすると、 CodeCatalyst は設定されたアップストリームリポジトリでパッケージバージョンを検索します。アップストリームリポジトリは設定された順序で検索され、パッケージが見つかると検索 CodeCatalyst が停止します。

ゲートウェイリポジトリ

ゲートウェイリポジトリは、サポートされている外部公式パッケージ権限に接続されている特殊なタイプのパッケージリポジトリです。ゲートウェイリポジトリをアップストリームリポジトリ として追加すると、対応する公式パッケージ権限のパッケージを使用できます。ダウンストリームリポジトリはパブリックリポジトリと通信せず、すべてゲートウェイリポジトリによって仲介されます。この方法で消費されたパッケージは、ゲートウェイリポジトリと、元のリクエストを受信したダウンストリームリポジトリの両方に保存されます。

ゲートウェイリポジトリは事前定義されていますが、使用する各プロジェクトで作成する必要があります。次のリストには、 で作成できるすべてのゲートウェイリポジトリ CodeCatalyst と、それらが接続されているパッケージ権限が含まれています。

  • npm-public-registry-gateway は、npmjs.com から npm パッケージを提供します。

  • maven-central-gateway は、Maven Central リポジトリから Maven パッケージを提供します。

  • google-android-gateway は、Google Android からの Maven パッケージを提供します。

  • commonsware-gateway は、 から Maven パッケージを提供します CommonsWare。

  • gradle-plugins-gateway は、Gradle Plugins からの Maven パッケージを提供します。

  • nuget-gallery-gateway は NuGet Gallery からの NuGet パッケージを提供します。

  • pypi-gateway は、Python パッケージインデックスから Python パッケージを提供します。