Artifact Registry 中的 Apt 存放區可讓您集中管理 Debian 套件,並在 Linux 工作負載中維持一致的軟體依附元件。您可以新增、查看及刪除套件,或將套件安裝至已設定的 VM。
事前準備
- 如果目標 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-west1 中的 Apt 存放區 my-repo,請執行下列指令:
gcloud artifacts apt upload my-repo \
--location=us-west1 \
--source=my-package.deb
Cloud Storage
- 請按照下列步驟,將套件上傳至 Cloud Storage:
- 直接將套件上傳至 Cloud Storage bucket
- 使用 Cloud Build 建構套件,並將套件儲存在 bucket 中
- 請執行下列指令:
gcloud artifacts apt import REPOSITORY \ --location=LOCATION \ --gcs-source=PACKAGES
替換下列值:
REPOSITORY是 Artifact Registry 存放區名稱。-
LOCATION是存放區的區域或多區域位置。 PACKAGES是 Cloud Storage 中以半形逗號分隔的套件清單。如要上傳目錄中的所有套件,請使用目錄萬用字元 (*),或使用遞迴目錄萬用字元 (**) 上傳所有子目錄中的所有套件。
舉例來說,如要將套件
package.deb和directory目錄中的所有套件,從 bucketmy-bucket上傳至位置us-west1的 Apt 存放區my-repo,請執行下列指令:gcloud artifacts apt import my-repo \ --location=us-west1 \ --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 控制台中開啟「Repositories」(存放區) 頁面。
在存放區清單中,按一下適當的存放區。
「Packages」(套件) 頁面會列出存放區中的套件。
按一下套件即可查看套件版本。
gcloud
如要列出存放區中的套件,請執行下列指令:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=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 控制台中開啟「Repositories」(存放區) 頁面。
在存放區清單中,按一下適當的存放區。
「Packages」(套件) 頁面會列出存放區中的套件。
選取要刪除的套件。
按一下 [刪除]。
在確認對話方塊中,按一下「刪除」。
gcloud
執行下列指令:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
更改下列內容:
PACKAGE是存放區中的套件名稱。REPOSITORY是存放區的名稱。如果您已設定預設存放區,可以省略這個標記,使用預設存放區。-
LOCATION是存放區的區域或多區域位置。 使用這個旗標查看特定位置的存放區。如果您已設定預設位置,則可省略此標記,使用預設位置。
--async 標記會讓指令立即傳回,不會等待執行中的作業完成。
如要刪除套件版本,請按照下列步驟操作:
控制台
在 Google Cloud 控制台中開啟「Repositories」(存放區) 頁面。
在存放區清單中,按一下適當的存放區。
「Packages」(套件) 頁面會列出存放區中的套件。
按一下套件即可查看該套件的版本。
選取要刪除的版本。
按一下 [刪除]。
在確認對話方塊中,按一下「刪除」。
gcloud
執行下列指令:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
更改下列內容:
VERSION是要刪除的版本名稱。PACKAGE是存放區中的套件名稱。REPOSITORY是存放區的名稱。如果您已設定預設存放區,可以省略這個標記,使用預設存放區。-
LOCATION是存放區的區域或多區域位置。 使用這個旗標查看特定位置的存放區。如果您已設定預設位置,則可省略此標記,使用預設位置。
--async 標記會讓指令立即傳回,不會等待執行中的作業完成。
如果是大型存放區,可能需要幾分鐘才能重新產生 Apt 套件索引,反映刪除作業。