RPM パッケージを管理する

このページでは、Yum リポジトリでの RPM パッケージの追加、表示、削除について説明します。Artifact Registry Yum リポジトリは、Yum と DNF をサポートしています。

始める前に

  1. ターゲット Yum リポジトリが存在しない場合は、新しいリポジトリを作成します
  2. リポジトリにアクセスできるように VM を構成します。
  3. (省略可)gcloud コマンドのデフォルトを構成します。
  4. メタデータ内のパッケージ名が Fedora パッケージの命名ガイドラインFedora パッケージのバージョニング ガイドラインを満たしていることを確認します。

パッケージの追加

リポジトリ モード: 標準

パッケージを追加するリポジトリに対する読み取りと書き込み権限が必要です。

Google Cloud CLI を使用してパッケージをリポジトリにアップロードすることも、Cloud Storage に保存されているパッケージをインポートすることもできます。Cloud Build を使用してパッケージをビルドする場合、このビルドは Cloud Storage にパッケージを保存してインポートできます。

非常に長いインポートまたはアップロードのオペレーションの場合は、gcloud CLI が API の呼び出しに使用するトークンの有効期限が切れる場合があります。追加するパッケージが非常に多い場合は、小さいバッチ単位で追加し、各アップロードまたはインポート オペレーションをより短時間で完了することを検討してください。 詳細については、OS パッケージのトラブルシューティングのドキュメントをご覧ください。

直接アップロード

gcloud artifacts yum upload コマンドを使用して、パッケージを Yum リポジトリにアップロードするには:

gcloud artifacts yum upload REPOSITORY \
    --location=LOCATION \
    --source=PACKAGES

次の値を置き換えます。

  • REPOSITORY は Artifact Registry のリポジトリ名です。
  • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
  • PACKAGES はパッケージへのパスです。

たとえば、パッケージ my-package.rpm をロケーション us-central1 の Yum リポジトリ my-repo にアップロードするには、次を実行します。

gcloud artifacts yum upload my-repo \
    --location=us-central1 \
    --source=my-package.rpm

Cloud Storage

  1. 次のいずれかの方法でパッケージを Cloud Storage にアップロードします。

    • パッケージを Cloud Storage バケットに直接アップロードする
    • Cloud Build でパッケージをビルドし、バケットに保存する
  2. 次のコマンドを実行します。

    gcloud artifacts yum import REPOSITORY \
        --location=LOCATION \
        --gcs-source=PACKAGES
    

    次の値を置き換えます。

    • REPOSITORY は Artifact Registry のリポジトリ名です。
    • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
    • PACKAGES は、Cloud Storage 内のパッケージのカンマ区切りのリストです。ディレクトリからすべてのパッケージをアップロードするには、ディレクトリ ワイルドカード(*)を使用するか、再帰ディレクトリ ワイルドカード(**)を使用してすべてのサブディレクトリですべてのパッケージをアップロードします。

    たとえば、パッケージ package.rpmdirectory ディレクトリ内のすべてのパッケージを、バケット my-bucket からロケーション us-central1 の Yum リポジトリ my-repo にアップロードするには、次のコマンドを実行します。

    gcloud artifacts yum import my-repo \
        --location=us-central1 \
        --gcs-source=gs://my-bucket/path/to/package.rpm,gs://my-bucket/directory*
    

アップロードまたはインポートのオペレーションが完了したら、Google Cloud コンソールまたは gcloud CLI を使用して、リポジトリ内のパッケージを表示して、それらが正常にアップロードされたことを確認できます。

多数のパッケージを含む大規模なリポジトリの場合、パッケージ インデックスが再生成され、新しいパッケージが Yum クライアントに表示されるまでに数分かかることがあります。

パッケージの表示

リポジトリ モード: 標準、リモート(プレビュー)

パッケージを表示するには、Artifact Registry 読み取り者のロールの権限が必要です。Artifact Registry はパッケージ内のファイルを一覧表示しません。

Google Cloud コンソールまたは gcloud を使用してパッケージとパッケージのバージョンを表示するには:

コンソール

  1. Google Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリ リストで、適切なリポジトリをクリックします。

    [パッケージ] ページに、リポジトリ内のパッケージが一覧表示されます。

  3. パッケージをクリックして、そのパッケージのバージョンを表示します。

gcloud

リポジトリ内のパッケージを一覧表示するには、次のコマンドを実行します。

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

場所

  • REPOSITORY はリポジトリの名前です。 デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • LOCATION は、 リージョンまたはマルチリージョンの ロケーションです。 このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。

パッケージのバージョンを表示するには、次のコマンドを実行します。

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

場所

  • PACKAGE は、パッケージの ID またはパッケージの完全修飾識別子です。
  • REPOSITORY はリポジトリの名前です。 デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • LOCATION は、 リージョンまたはマルチリージョンの ロケーションです。 このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。

パッケージのインストール

リポジトリ モード: 標準、リモート(プレビュー)

パッケージをインストールする前に、パッケージ管理システムとリポジトリが正しく構成されていることを確認してください。

パッケージをインストールするには、次の手順を実施します。

Yum で構成されたリポジトリの名前を指定して、パッケージをインストールします。

sudo yum --enablerepo=REPOSITORY install PACKAGE

次の値を置き換えます。

  • PACKAGE はパッケージ名です
  • REPOSITORY は、.repo ファイルで構成されているリポジトリの名前です。

たとえば、リポジトリ my-repo からパッケージ my-package をインストールするには、次のコマンドを実行します。

sudo yum --enablerepo=my-repo install my-package

パッケージの削除

リポジトリ モード: 標準

パッケージまたはパッケージのバージョンを削除する前に、そのパッケージの重要な依存関係を送信済み、または対処済みであることを確認してください。

パッケージを削除するには:

コンソール

  1. Google Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリ リストで、適切なリポジトリをクリックします。

    [パッケージ] ページに、リポジトリ内のパッケージが一覧表示されます。

  3. 削除するパッケージを選択します。

  4. [削除] をクリックします。

  5. 確認のダイアログ ボックスで、[削除] をクリックします。

gcloud

次のコマンドを実行します。

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

場所

  • PACKAGE は、リポジトリ内のイメージの名前です。
  • REPOSITORY はリポジトリの名前です。デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • LOCATION は、 リージョンまたはマルチリージョンの ロケーションです。 このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。
  • --async - 処理中のオペレーションの完了を待たずに、直ちにコマンドを終了します。

パッケージのバージョンを削除するには:

コンソール

  1. Google Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリ リストで、適切なリポジトリをクリックします。

    [パッケージ] ページに、リポジトリ内のパッケージが一覧表示されます。

  3. パッケージをクリックして、そのパッケージのバージョンを表示します。

  4. 削除するバージョンを指定します。

  5. [削除] をクリックします。

  6. 確認のダイアログ ボックスで、[削除] をクリックします。

gcloud

次のコマンドを実行します。

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

場所

  • PACKAGE は、リポジトリ内のイメージの名前です。
  • REPOSITORY はリポジトリの名前です。デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • LOCATION は、 リージョンまたはマルチリージョンの ロケーションです。 このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。
  • --async は処理中のオペレーションの完了を待たずに、直ちにコマンドを終了します。

大規模なリポジトリの場合、削除を反映して Yum パッケージ インデックスを再生成するために数分かかることがあります。

次のステップ