パッケージの概念 - Amazon CodeCatalyst

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

パッケージの概念

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

パッケージ

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

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

  • 名前 (例: 一般的な npm パッケージwebpackの名前)

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

  • 一連のバージョン (例: 1.0.01.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メタデータ、およびアセットのセットで構成されます。

アセット

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

パッケージリポジトリ

CodeCatalyst パッケージリポジトリには、パッケージバージョン を含む一連のパッケージ が含まれ、それぞれが一連のアセット にマッピングされます。パッケージリポジトリは polyglot です。つまり、1 つのリポジトリにサポートされている任意のタイプのパッケージを含めることができます。各パッケージリポジトリは、 CLIs (nugetdotnet)、、Maven ()npmCLI、Python CLI pip (、mvn) CLIs などの NuGet ツールを使用してパッケージを取得および発行するためのエンドポイントを公開しますtwine。各スペースに作成できるパッケージリポジトリの数など 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 ギャラリーからの NuGet パッケージを提供します。

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