本页面介绍了如何配置虚拟机以安装 RPM 软件包
一个 Artifact Registry Yum 代码库Artifact Registry Yum 仓库支持 yum
和 dnf
客户端。
准备工作
如果目标 Yum 代码库不存在, 创建一个新的代码库。您可以创建私有代码库或无需身份验证的公共代码库。
准备虚拟机以访问 Yum 代码库
如需准备虚拟机以访问 Yum 代码库,请使用 yum
或 dnf
客户端工具:
私有代码库
选择您要用于授予访问权限的服务账号。
授予代码库访问权限 您的服务账号
准备虚拟机以访问代码库。
Compute Engine 虚拟机
向虚拟机分配
cloud-platform
API 访问权限范围。有关如何设置访问权限的信息 范围,请参阅 更改实例的服务账号和访问权限范围。使用以下命令更新软件包缓存:
sudo yum makecache
使用以下命令在虚拟机上安装 Artifact Registry 插件:
sudo yum install FORMAT-plugin-artifact-registry
替换以下内容:
- 将
FORMAT
替换为以下项之一:yum
,如果您的操作系统是 Enterprise Linux 7 或更低版本dnf
(如果您的操作系统是 Enterprise Linux 8 或更高版本)
- 将
其他虚拟机
使用以下命令安装 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
是版本。el7
和el8
是有效的DISTRO
值示例。
- 将
使用以下命令更新 Yum:
sudo yum makecache
使用以下命令在虚拟机上安装 Artifact Registry 插件:
yum install FORMAT-plugin-artifact-registry
将
FORMAT
替换为以下项之一:yum
,如果您的操作系统是 Enterprise Linux 7 或更低版本dnf
(如果您的操作系统是 Enterprise Linux 8 或更高版本)
找到
#service_account_json = "/path/to/creds.json"
行 在artifact-registry.conf
文件中,然后取消注释该行, 添加您的服务账号密钥的路径。- 对于 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 或更低版本的操作系统,配置文件的路径为
公共代码库
配置虚拟机以访问标准 Yum 代码库
如需将虚拟机配置为访问 Yum 代码库,请使用 yum
或 dnf
客户端工具:
运行
gcloud beta artifacts print-settings yum
命令生成虚拟机配置命令:gcloud beta artifacts print-settings yum \ --repository=REPOSITORY \ --location=LOCATION
替换以下内容:
- LOCATION 是单区域或多区域位置。
- REPOSITORY 是 Artifact Registry 制品库的名称。
输出类似于以下内容:
# 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-repo
安装软件包,请执行以下操作: 在my-project
和us-central1
位置中,使用以下命令:sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL [my-repo] name=My Repository baseurl=https://us-central1-yum.pkg.dev/projects/my-project/my-repo enabled=1 repo_gpgcheck=0 gpgcheck=0 EOL
使用以下命令更新代码库源代码:
sudo yum makecache
Yum 现在可以连接到代码库。
如果您创建其他 Yum 代码库,请为每个代码库创建一个 .repo
文件
在 /etc/yum.repos.d/
中。重新运行 sudo yum update
以更新代码库来源。
配置虚拟机以访问远程 Yum 代码库
如需将虚拟机配置为仅使用远程 Yum 仓库(而非标准上游 Yum 仓库),请将虚拟机仓库列表中的标准仓库替换为远程仓库。
如果标准代码库是在配置文件(而非
单独的代码库文件 (.repo
) 中,您可以删除配置中的相应条目
文件并将其替换为远程文件,或在
/etc/yum.repos.d/
目录中。
在您的虚拟机所在的行中,点击 SSH。系统会打开一个新窗口 终端会话。
打开虚拟机的
/etc/yum.repos.d/
文件夹,然后找到包含标准上游代码库的适当代码库文件 (.repo
)。这有时也称为“基础代码库”。基础代码库 可通过包含[base]
或[baseos]
。如需完全替换基础代码库,请移除
[base]
。在
[base]
下方添加以下代码:[base] 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。此名称可与上游 (如果已删除其配置) 将其识别为远程代码库 - 将
REPOSITORY_NAME
替换为 存储库LOCATION
替换为远程代码库的单区域或多区域位置。
- 将
PROJECT_ID
替换为虚拟机的项目 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
替换为您的代码库的唯一代码库 ID。 远程 Yum 代码库。 - 将
REPOSITORY_NAME
替换为直观易懂的代码库名称。LOCATION
替换为远程代码库的单区域或多区域位置。
- 将
PROJECT_ID
替换为虚拟机的项目 ID。 - 将
REMOTE_REPOSITORY_NAME
替换为您为远程代码库指定的名称。
例如,以下命令会在 Yum 安装代码库 my-repo
时,将虚拟机配置为提取项目 my-project
和位置 us-east1
中的代码库 my-repo
。
sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[my-repo]
name=My Repository
baseurl=https://us-east1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF