管理 RPM 套件

本頁說明如何在 Yum 存放區中新增、查看及刪除 RPM 套件。Artifact Registry Yum 存放區支援 Yum 和 DNF。

事前準備

  1. 如果目標 Yum 存放區不存在,請建立新的存放區。
  2. 設定 VM 來存取存放區。
  3. (選用) 設定 gcloud 指令的預設值。
  4. 確認中繼資料中的套件名稱符合 Fedora 套件命名規範和 Fedora 套件版本控管規範。

新增套件

存放區模式:標準

如要新增套件,您必須具備存放區的讀取和寫入權限。

您可以使用 Google Cloud CLI 將套件上傳至存放區,也可以匯入儲存在 Cloud Storage 中的套件。

如果匯入或上傳作業時間過長,可能會超過 gcloud CLI 用來呼叫 API 的權杖有效期限。如要新增大量套件,建議分批新增,縮短每次上傳或匯入作業的時間。詳情請參閱「OS packages troubleshooting」說明文件。

直接上傳

使用 gcloud artifacts yum upload 指令將套件上傳至 Yum 存放區:

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

替換下列值:

  • REPOSITORY 是 Artifact Registry 存放區名稱。
  • LOCATION 是存放區的區域位置。
  • PACKAGES 是套件的路徑。

舉例來說,如要將 my-package.rpm 套件上傳至位置 u-france-east1 的 Yum 存放區 my-repo,請執行:

gcloud artifacts yum upload my-repo \
    --location=u-france-east1 \
    --source=my-package.rpm

Cloud Storage

  1. 直接將套件上傳至 Cloud Storage bucket。
  2. 請執行下列指令:
    gcloud artifacts yum import REPOSITORY \
      --location=LOCATION \
      --gcs-source=PACKAGES
    

    替換下列值:

    • REPOSITORY 是 Artifact Registry 存放區名稱。
    • LOCATION 是存放區的區域位置。
    • PACKAGES 是以半形逗號分隔的 Cloud Storage 套件清單。如要上傳目錄中的所有套件,請使用目錄萬用字元 (*),或使用遞迴目錄萬用字元 (**) 上傳所有子目錄中的所有套件。

    舉例來說,下列指令會將套件 package.rpm 和 directory 目錄中的所有套件,從值區 my-bucket 上傳至位置 u-france-east1 的 Yum 存放區 my-repo:

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

上傳或匯入作業完成後,您可以使用Cloud de Confiance 控制台或 gcloud CLI 查看存放區中的套件,並確認套件已成功上傳。

如果存放區很大且包含大量套件,可能需要幾分鐘才能重新產生套件索引,讓 Yum 用戶端看到新套件。

查看套件

存放區模式:標準

如要查看套件,您必須具備Artifact Registry Reader 角色的權限。Artifact Registry 不會列出套件中的檔案。

如要使用 Cloud de Confiance 控制台或 gcloud 查看套件和套件版本,請按照下列步驟操作:

控制台

  1. 在 Cloud de Confiance 控制台中開啟「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. 在 Cloud de Confiance 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

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

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

  3. 選取要刪除的套件。

  4. 按一下 [刪除]。

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

gcloud

執行下列指令:

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

更改下列內容:

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

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

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

控制台

  1. 在 Cloud de Confiance 控制台中開啟「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 套件索引,以反映刪除作業。

後續步驟