本頁說明如何設定 VM,從 Artifact Registry Yum 存放區安裝 RPM 套件。Artifact Registry Yum 存放區支援 yum 和 dnf 用戶端。
事前準備
如果目標 Yum 存放區不存在,請建立新的存放區。您可以建立私有存放區,或是不需要驗證的公開存放區。
準備 VM 以存取 Yum 存放區
如要準備 VM 以存取 Yum 存放區,請使用 yum 或 dnf 用戶端工具:
私人存放區
選擇要用來授予存取權的服務帳戶。
準備 VM 以存取存放區。
Compute Engine VM
將
cloud-platformAPI 存取權範圍 指派給 VM。如要瞭解如何設定存取範圍,請參閱「變更執行個體的服務帳戶與存取範圍」。使用下列指令更新套件快取:
sudo yum makecache在 VM 上安裝 Artifact Registry 外掛程式,請使用下列指令:
sudo yum install FORMAT-plugin-artifact-registry更改下列內容:
FORMAT,並符合下列其中一項條件:yum,如果您的作業系統是 Enterprise Linux 7 或更早版本dnf(如果作業系統是 Enterprise Linux 8 以上版本)
其他 VM
使用下列指令安裝 RPM 簽署金鑰:
sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg建立名為
/etc/yum.repos.d/artifact-registry-plugin.repo的檔案,並在當中加入下列內容:[ar-plugin] name=Artifact Registry Plugin baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-DISTRO-stable enabled=1 gpgcheck=1
更改下列內容:
FORMAT,並符合下列其中一項條件:yum,如果您的作業系統是 Enterprise Linux 7 或更早版本dnf(如果作業系統是 Enterprise Linux 8 以上版本)
DISTRO,其中X是發布版本。elX有效DISTRO值範例:el7和el8。
使用下列指令更新 Yum:
sudo yum makecache在 VM 上安裝 Artifact Registry 外掛程式,請使用下列指令:
yum install FORMAT-plugin-artifact-registry將
FORMAT替換為下列其中一個值:yum,如果您的作業系統是 Enterprise Linux 7 或更早版本dnf(如果作業系統是 Enterprise Linux 8 以上版本)
在
artifact-registry.conf檔案中找到#service_account_json = "/path/to/creds.json"行,然後取消註解該行,並新增服務帳戶金鑰的路徑。- 如果是 Enterprise Linux 7 或更早版本的作業系統,設定檔的路徑為
/etc/yum/pluginconf.d/artifact-registry.conf。 - 如果是 Enterprise Linux 8 以上版本的作業系統,設定檔路徑為
/etc/dnf/plugins/artifact-registry.conf。
設定檔項目:
service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
將
PATH_TO_SERVICE_ACCOUNT_KEY替換為服務帳戶金鑰 JSON 檔案的路徑。- 如果是 Enterprise Linux 7 或更早版本的作業系統,設定檔的路徑為
公開存放區
設定 VM 來存取標準 Yum 存放區
如要設定 VM 存取 Yum 存放區,請使用 yum 或 dnf 用戶端工具:
執行
gcloud beta artifacts print-settings yum指令,產生 VM 設定指令:gcloud beta artifacts print-settings yum \ --repository=REPOSITORY \ --location=LOCATION更改下列內容:
REPOSITORY是 Artifact Registry 存放區的名稱。-
LOCATION是存放區的區域或多區域位置。
輸出結果會與下列內容相似:
# To configure your package manager with this repository: # Update Yum: sudo yum makecache # Install the Yum credential helper: sudo yum install yum-plugin-artifact-registry # Configure your VM to access Artifact Registry packages using the following # command: sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL [REPOSITORY] name=REPOSITORY baseurl=https://LOCATION-yum.pkg.dev/projects/PROJECT/REPOSITORY enabled=1 repo_gpgcheck=0 gpgcheck=0 EOL # Update Yum: sudo yum makecache
使用
print-settings指令的輸出內容,透過tee指令設定yum用戶端工具,從存放區擷取套件。舉例來說,如要從專案
my-project中位置us-west1的公開my-repo安裝套件,請使用下列指令:sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL [my-repo] name=My Repository baseurl=https://us-west1-yum.pkg.dev/projects/my-project/my-repo enabled=1 repo_gpgcheck=0 gpgcheck=0 EOL
使用下列指令更新存放區來源:
sudo yum makecache
Yum 現在可以連線至存放區。
如果您建立其他 Yum 存放區,請在 /etc/yum.repos.d/ 中為每個存放區建立 .repo 檔案。重新執行 sudo yum update,更新存放區來源。
設定 VM 以存取遠端 Yum 存放區
如要將 VM 設定為僅使用遠端 Yum 存放區,而非標準上游 Yum 存放區,請將 VM 存放區清單中的標準存放區替換為遠端存放區。
如果標準存放區是在設定檔中定義,而非在個別存放區檔案 (.repo) 中定義,您可以刪除設定檔中的項目,並替換為遠端存放區,或在 /etc/yum.repos.d/ 目錄中定義新的存放區檔案。
在 VM 所在資料列中,按一下「SSH」SSH。新視窗隨即開啟,顯示 VM 的終端機工作階段。
開啟 VM 的
/etc/yum.repos.d/資料夾,找出包含標準上游存放區的適當存放區檔案 (.repo)。有時也稱為基礎存放區。含有[base]或[baseos]的 Yum 存放區名稱,可用來識別基本存放區。如要完全取代基礎存放區,請移除
[base]或[baseos]下的預設設定。如要保留標準上游存放區,並將遠端存放區新增為備援選項,請勿移除預設設定。在
[base]或[baseos]下方新增下列設定:name=YUM_REPOSITORY_NAME baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME enabled=1 gpgcheck=1更改下列內容:
YUM_REPOSITORY_NAME,並為遠端 Yum 存放區提供一個單字組成的專屬存放區 ID。如果您已刪除標準上游存放區設定,這個名稱可以與上游存放區名稱相符;如果保留標準上游存放區,則可以使用其他名稱將其識別為遠端存放區。-
LOCATION是存放區的區域或多區域位置。 - 將
PROJECT_ID替換為 VM 的專案 ID。 REMOTE_REPOSITORY_NAME,其中包含遠端存放區的易讀名稱。
使用遠端 Yum 存放區做為備份
如要保留標準上游做為第一個選項,並將遠端存放區新增為備援選項,可以將標準上游保留在存放區檔案中,並在 /etc/yum.repos.d 資料夾中建立新的存放區檔案。
如要在 /etc/yum.repos.d 資料夾中建立新的存放區檔案,請執行下列指令:
sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[YUM_REPOSITORY_NAME]
name=REPOSITORY_NAME
baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
enabled=1
gpgcheck=1
EOF
更改下列內容:
YUM_REPOSITORY_NAME,並為遠端 Yum 存放區提供一個單字組成的專屬存放區 ID。- 將
REPOSITORY_NAME替換為存放區的人類可讀名稱。 LOCATION,其中包含遠端存放區的區域或多區域位置。- 將
PROJECT_ID替換為 VM 的專案 ID。 REMOTE_REPOSITORY_NAME改成您為遠端存放區提供的名稱。
舉例來說,下列指令會將 VM 設定為在 Yum 安裝存放區 my-repo 時,擷取專案 my-project 和位置 us-west1 中的存放區 my-repo。
sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[my-repo]
name=My Repository
baseurl=https://us-west1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF