本頁說明如何設定 VM,以便從 Artifact Registry Yum 存放區安裝 RPM 套件。Artifact Registry Yum 存放區支援 yum
和 dnf
用戶端。
事前準備
如果目標 Yum 存放區不存在,請建立新的存放區。您可以建立私人存放區或不需要驗證的公開存放區。
準備 VM 以存取 Yum 存放區
如要準備 VM 以存取 Yum 存放區,請使用 yum
或 dnf
用戶端工具:
私人存放區
選擇要用來授予存取權的服務帳戶。
準備 VM 以存取存放區。
Compute Engine VM
將
cloud-platform
API 存取權範圍指派給 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
與 Red Hat Enterprise Linux 主要版本,格式為elX
,其中X
為版本。有效的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
設定
yum
用戶端工具,以便使用print-settings
指令輸出的tee
指令,從存放區擷取套件。舉例來說,如要從專案
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
替換成您為遠端存放區提供的名稱。
舉例來說,下列指令會在 Yum 安裝存放區 my-repo
時,將 VM 設為擷取專案 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