管理 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-west1 位置的 Yum 存放區 my-repo,請執行以下指令:

gcloud artifacts yum upload my-repo \
    --location=us-west1 \
    --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 套件清單。如要上傳目錄中的所有套件,請使用目錄萬用字元 (*) 或遞迴目錄萬用字元 (**),上傳所有子目錄中的套件。

    舉例來說,下列指令會從 my-bucket 值區上傳套件 package.rpmdirectory 目錄中的所有套件,至 us-west1 位置的 Yum 存放區 my-repo

    gcloud artifacts yum import my-repo \
      --location=us-west1 \
      --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 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  2. 在存放區清單中,按一下適當的存放區。

    「Packages」頁面會列出存放區中的套件。

  3. 按一下套件即可查看套件版本。

gcloud

如要列出存放區中的套件,請執行下列指令:

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

更改下列內容:

  • REPOSITORY 是存放區的名稱。如果您已設定預設存放區,可以省略此標記來使用預設值。
  • LOCATION 是存放區的地區或多地區位置。 如果您已設定預設位置,則可以省略此標記,以便使用預設值。

如要查看套件的版本,請執行下列指令:

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

更改下列內容:

  • PACKAGE 是套件的 ID 或套件的完整 ID。
  • REPOSITORY 是存放區的名稱。如果您已設定預設存放區,則可以略過此標記,以便使用預設值。
  • LOCATION 是存放區的地區或多地區位置。 使用這個旗標可查看特定位置的存放區。如果您已設定預設位置,則可以省略此標記,以便使用預設位置。

安裝套件

存放區模式標準、遠端 (預先發布版)

安裝套件前,請確認您已設定 VM,以便從 Artifact Registry 存放區安裝套件。

如要安裝套件,請執行下列指令:

sudo yum --enablerepo=REPOSITORY install PACKAGE

替換下列值:

  • PACKAGE 是套件名稱
  • REPOSITORY.repo 檔案中設定的存放區名稱。

舉例來說,如要從存放區 my-repo 安裝套件 my-package,請執行下列指令:

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

刪除套件

存放區模式標準

刪除套件或套件版本前,請確認您已通報或解決其中的任何重要依附元件。

如要刪除套件,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  2. 在存放區清單中,按一下適當的存放區。

    「Packages」頁面會列出存放區中的套件。

  3. 選取要刪除的套件。

  4. 按一下 [刪除]

  5. 在確認對話方塊中,按一下「刪除」

gcloud

執行下列指令:

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

更改下列內容:

  • PACKAGE 是存放區中的套件名稱。
  • REPOSITORY 是存放區的名稱。如果您已設定預設存放區,可以略過此標記,以便使用預設值。
  • LOCATION 是存放區的地區或多地區位置。 使用這個旗標可查看特定位置的存放區。如果您已設定預設位置,則可以省略此標記,以便使用預設值。

--async 標記會讓指令立即傳回,而不會等待進行中的作業完成。

如要刪除套件版本,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  2. 在存放區清單中,按一下適當的存放區。

    「Packages」頁面會列出存放區中的套件。

  3. 按一下套件即可查看該套件的版本。

  4. 選取要刪除的版本。

  5. 按一下 [刪除]

  6. 在確認對話方塊中,按一下「刪除」

gcloud

執行下列指令:

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

更改下列內容:

  • VERSION 是您要刪除的版本名稱。
  • PACKAGE 是存放區中的套件名稱。
  • REPOSITORY 是存放區的名稱。如果您已設定預設存放區,可以略過此標記,以便使用預設值。
  • LOCATION 是存放區的地區或多地區位置。 使用這個旗標可查看特定位置的存放區。如果您已設定預設位置,則可以省略此標記,以便使用預設值。

--async 標記會讓指令立即傳回,而不會等待進行中的作業完成。

如果是大型存放區,系統可能需要幾分鐘的時間才能重新產生 Yum 套件索引,以反映刪除作業。

後續步驟