このページでは、Apt リポジトリ内の Debian パッケージの追加、表示、削除について説明します。
始める前に
- ターゲット Apt リポジトリが存在しない場合は、新しいリポジトリを作成します。
- リポジトリにアクセスするように VM を構成します。
- (省略可)gcloud コマンドのデフォルトを構成します。
- メタデータ内のパッケージ名が Debian パッケージ名の標準を満たしているようにしてください。
パッケージの追加
リポジトリ モード: 標準
パッケージを追加するリポジトリに対する読み取りと書き込み権限が必要です。
Google Cloud CLI を使用してパッケージをリポジトリにアップロードすることも、Cloud Storage に保存されているパッケージをインポートすることもできます。Cloud Build を使用してパッケージをビルドする場合、このビルドは Cloud Storage にパッケージを保存してインポートできます。
非常に長いインポートまたはアップロードのオペレーションの場合は、gcloud CLI が API の呼び出しに使用するトークンの有効期限が切れる場合があります。追加するパッケージが非常に多い場合は、小さいバッチ単位で追加し、各アップロードまたはインポート オペレーションをより短時間で完了することを検討してください。 詳細については、OS パッケージのトラブルシューティングのドキュメントをご覧ください。
直接アップロード
gcloud artifacts apt upload
コマンドを使用して、パッケージを Apt リポジトリにアップロードするには:
gcloud artifacts apt upload REPOSITORY \
--location=LOCATION \
--source=PACKAGES
次の値を置き換えます。
- REPOSITORY は Artifact Registry のリポジトリ名です。
- LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
- PACKAGES はパッケージのパスです。
たとえば、パッケージ my-package.deb
をロケーション us-central1
の Apt リポジトリ my-repo
にアップロードするには、次を実行します。
gcloud artifacts apt upload my-repo \ --location=us-central1 \ --source=my-package.deb
Cloud Storage
次のいずれかの方法でパッケージを Cloud Storage にアップロードします。
- パッケージを Cloud Storage バケットに直接アップロードする
- Cloud Build でパッケージをビルドし、バケットに保存する
次のコマンドを実行します。
gcloud artifacts apt import REPOSITORY \ --location=LOCATION \ --gcs-source=PACKAGES
次の値を置き換えます。
- REPOSITORY は Artifact Registry のリポジトリ名です。
- LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
- PACKAGES は、Cloud Storage 内のパッケージのカンマ区切りのリストです。ディレクトリからすべてのパッケージをアップロードするには、ディレクトリ ワイルドカード(
*
)を使用するか、再帰ディレクトリ ワイルドカード(**)を使用してすべてのサブディレクトリですべてのパッケージをアップロードします。
たとえば、パッケージ
package.rpm
とdirectory
ディレクトリ内のすべてのパッケージを、バケットmy-bucket
からロケーションus-central1
の Apt リポジトリmy-repo
にアップロードするには、次のコマンドを実行します。gcloud artifacts apt import my-repo \ --location=us-central1 \ --gcs-source=gs://my-bucket/path/to/package.deb,gs://my-bucket/directory*
アップロードまたはインポートのオペレーションが完了したら、Google Cloud コンソールまたは gcloud CLI を使用して、リポジトリ内のパッケージを表示して、それらが正常にアップロードされたことを確認できます。
多数のパッケージを含む大規模なリポジトリの場合、パッケージ インデックスが再生成され、新しいパッケージが Apt クライアントに表示されるまでに数分かかることがあります。
パッケージの表示
リポジトリ モード: 標準、リモート(プレビュー)
パッケージを表示するには、Artifact Registry 読み取りロールの権限が必要です。Artifact Registry はパッケージ内のファイルを一覧表示しません。
Google Cloud コンソールまたは gcloud
を使用してパッケージとパッケージのバージョンを表示するには:
コンソール
Google Cloud Console で [リポジトリ] ページを開きます。
リポジトリ リストで、適切なリポジトリをクリックします。
[パッケージ] ページに、リポジトリ内のパッケージが一覧表示されます。
パッケージをクリックして、そのパッケージのバージョンを表示します。
gcloud
リポジトリ内のパッケージを一覧表示するには、次のコマンドを実行します。
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
場所
- REPOSITORY はリポジトリの名前です。 デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
- LOCATION は、 リージョンまたはマルチリージョンの ロケーションです。 このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。
パッケージのバージョンを表示するには、次のコマンドを実行します。
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
場所
パッケージのインストール
リポジトリ モード: 標準、リモート(プレビュー)
パッケージをインストールする前に、パッケージ管理システムとリポジトリが正しく構成されていることを確認してください。
リポジトリにパッケージをインストールするには:
使用可能なパッケージのリストを更新するには:
sudo apt update
Apt で構成されたリポジトリの名前を指定して、パッケージをインストールします。
sudo apt install PACKAGE/REPOSITORY
次の値を置き換えます。
- PACKAGE はパッケージ名です。
- REPOSITORY は Artifact Registry リポジトリの名前です。リモート リポジトリの場合は、標準のアップストリーム リポジトリの名前を使用します。
たとえば、リポジトリ
my-repo
からパッケージmy-package
をインストールするには、次のコマンドを実行します。sudo apt install my-package -t my-repo
パッケージの削除
リポジトリ モード: 標準
パッケージまたはパッケージのバージョンを削除する前に、そのパッケージの重要な依存関係を送信済み、または対処済みであることを確認してください。
パッケージを削除するには:
コンソール
Google Cloud Console で [リポジトリ] ページを開きます。
リポジトリ リストで、適切なリポジトリをクリックします。
[パッケージ] ページに、リポジトリ内のパッケージが一覧表示されます。
削除するパッケージを選択します。
[削除] をクリックします。
確認のダイアログ ボックスで、[削除] をクリックします。
gcloud
次のコマンドを実行します。
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
場所
パッケージのバージョンを削除するには:
コンソール
Google Cloud Console で [リポジトリ] ページを開きます。
リポジトリ リストで、適切なリポジトリをクリックします。
[パッケージ] ページに、リポジトリ内のパッケージが一覧表示されます。
パッケージをクリックして、そのパッケージのバージョンを表示します。
削除するバージョンを指定します。
[削除] をクリックします。
確認のダイアログ ボックスで、[削除] をクリックします。
gcloud
次のコマンドを実行します。
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
場所
大規模なリポジトリの場合、Apt パッケージ インデックスが再生成されて削除が反映されるまでに数分かかることがあります。