将 RPM 软件包存储在 Artifact Registry 中
本快速入门介绍如何设置私有 Artifact Registry Yum 代码库,将 RPM 软件包添加到代码库,然后将该软件包安装到 运行 CentOS 7 操作系统的 Compute Engine 虚拟机。如需了解如何配置使用 DNF 的 Yum 仓库,请参阅配置虚拟机以安装 RPM 软件包。
您将使用 Cloud Shell 和本快速入门中创建的虚拟机上的 Shell 执行本快速入门中的步骤。
如需详细了解如何管理 RPM 软件包,请参阅使用 RPM 软件包。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
启动 Cloud Shell
Cloud Shell 预安装有 Google Cloud CLI。gcloud CLI 提供了 Google Cloud 的主要命令行界面。
启动 Cloud Shell:
转到 Google Cloud 控制台。
在 Google Cloud 控制台工具栏中,点击激活 Cloud Shell:
控制台下方的框架内会打开一个 Cloud Shell 会话。您将使用此 shell 运行 gcloud
命令,以创建虚拟机和
存储库
创建代码库
为工件创建代码库。
创建代码库:
控制台
打开 Google Cloud 控制台中的制品库页面。
点击创建代码库。
指定
quickstart-yum-repo
作为该代码库的名称。选择 Yum 作为格式。
在位置类型下,选择区域,然后选择位置
us-central1
。点击创建。
该代码库会被添加到代码库列表中。
gcloud
在 Cloud Shell 中,运行以下命令以创建新的 Yum 当前项目中名为
quickstart-yum-repo
的代码库中的 地点:us-central1
。gcloud artifacts repositories create quickstart-yum-repo \ --repository-format=yum \ --location=us-central1 \ --description="Yum repository"
运行以下命令确认已创建代码库:
gcloud artifacts repositories list
现在,您可以将软件包添加到代码库。
将软件包添加到代码库
您可以使用 Google Cloud CLI 将软件包上传到代码库,也可以 导入存储在 Cloud Storage 中的软件包。如果您使用 Cloud Build 构建软件包,构建过程可以将软件包存储在 Cloud Storage 中,以便您导入。
在本快速入门中,您将使用 gcloud artifacts yum
upload
命令上传示例文件。
在 Cloud Shell 中,使用以下命令下载 nano 文本编辑器:
sudo yum install --downloaddir=. --downloadonly nano
Yum 会从您的 和已配置的 CentOS 代码库。
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.dal.nexril.net * epel: ord.mirror.rackspace.com * extras: centos.mirror.lstn.net * updates: ftpmirror.your.org Resolving Dependencies --> Running transaction check ---> Package nano.x86_64 0:2.3.1-10.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nano x86_64 2.3.1-10.el7 base 440 k Transaction Summary ================================================================================ Install 1 Package Total download size: 440 k Installed size: 1.6 M Background downloading packages, then exiting: nano-2.3.1-10.el7.x86_64.rpm | 440 kB 00:00 exiting because "Download Only" specified
运行
ls
以获取软件包的文件名。文件名类似于nano-2.3.1-10.el7.x86_64.rpm
。为了简化
gcloud
命令,请将默认代码库设置为quickstart-yum-repo
,并将默认位置设置为us-central1
。设置以上值之后,您无需在需要代码库或位置的gcloud
命令中指定这些值。如需设置代码库,请运行以下命令:
gcloud config set artifacts/repository quickstart-yum-repo
如需设置位置,请运行以下命令:
gcloud config set artifacts/location us-central1
如需详细了解这些命令,请参阅 gcloud config set 文档。
运行
gcloud artifacts yum upload
以将软件包上传到 代码库:gcloud artifacts yum upload quickstart-yum-repo \ --source=FILE_NAME
将
FILE_NAME
替换为 nano 软件包的路径。
查看代码库中的软件包
验证您的软件包是否已添加到代码库中。
控制台
打开 Google Cloud 控制台中的制品库页面。
在代码库列表中,点击 quickstart-yum-repo 代码库。
软件包页面列出代码库中的软件包。
gcloud
如需列出 quickstart-yum-repo
代码库中的软件包,请运行以下命令:
gcloud artifacts packages list
如需在 quickstart-yum-repo
中查看软件包的版本,请运行以下命令:
gcloud artifacts versions list --package=nano
创建虚拟机
创建新的 Compute Engine 虚拟机,用于安装示例软件包。
在 Cloud Shell 中,运行以下命令以创建名为 quickstart-yum-vm
的虚拟机实例。
gcloud compute instances create quickstart-yum-vm \
--image-family=centos-7 \
--image-project=centos-cloud \
--scopes=cloud-platform
默认情况下,虚拟机没有访问 API 所需的访问权限范围
使用代码库--scopes
标志会将虚拟机的访问权限范围设置为 cloud-platform
。
配置软件包管理系统
如需在虚拟机上安装软件包,请将您创建的代码库添加到用于定义软件包代码库的 Yum 文件中。
转到“虚拟机实例”页面。
在虚拟机所在的行中,点击 SSH。系统会打开一个包含终端的新窗口 虚拟机上的会话
更新 Yum:
sudo yum makecache
使用以下命令在虚拟机上安装 Yum 凭据帮助程序,以便 Yum 执行身份验证:
sudo yum install yum-plugin-artifact-registry
使用以下命令配置虚拟机以访问 Artifact Registry 软件包 命令:
sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF [yum-quickstart] name=My Repository baseurl=https://us-central1-yum.pkg.dev/projects/PROJECT/quickstart-yum-repo enabled=1 repo_gpgcheck=0 gpgcheck=0 EOF
将 PROJECT 替换为您的 Google Cloud 项目 ID。
安装软件包
安装您添加到代码库的软件包。
更新可用软件包的列表:
sudo yum makecache
在代码库中安装该软件包。
sudo yum --enablerepo=yum-quickstart install nano
出现提示时输入
y
。返回的安装信息如下例所示:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cmich.edu * epel: ord.mirror.rackspace.com * extras: mirror.team-cymru.com * updates: mirror.us-midwest-1.nexcess.net quickstart-yum-repo | 1.3 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package nano.x86_64 0:2.3.1-10.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nano x86_64 2.3.1-10.el7 base 440 k Transaction Summary ================================================================================ Install 1 Package Total size: 440 k Installed size: 1.6 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : nano-2.3.1-10.el7.x86_64 1/1 Verifying : nano-2.3.1-10.el7.x86_64 1/1 Installed: nano.x86_64 0:2.3.1-10.el7 Complete!
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
在移除代码库之前,请确保已在其他位置保存了您要保留的任何软件包。
如需删除代码库,请执行以下操作:
控制台
打开 Google Cloud 控制台中的制品库页面。
在代码库列表中,选择 quickstart-yum-repo 代码库。
点击删除。
gcloud
如需删除
quickstart-yum-repo
代码库,请运行以下命令:gcloud artifacts repositories delete quickstart-yum-repo
如果要移除您为活跃的
gcloud
配置而配置的默认代码库和位置信息设置,请运行以下命令:gcloud config unset artifacts/repository gcloud config unset artifacts/location
如需删除您创建的虚拟机,请运行以下命令:
gcloud compute instances delete quickstart-yum-vm
后续步骤
- 了解如何使用 RPM 软件包。
- 阅读我们关于 DevOps 的资源,并了解我们的研究项目。