本页介绍了如何在 Yum 仓库中添加、查看和删除 RPM 软件包。Artifact Registry Yum 仓库支持 Yum 和 DNF。
准备工作
- 如果目标 Yum 代码库不存在,请创建新代码库。
- 配置虚拟机以访问代码库。
- (可选)为 gcloud 命令配置默认值。
- 确保元数据中的软件包名称符合 Fedora 软件包命名准则和 Fedora 软件包版本控制准则。
添加软件包
代码库模式:标准
您必须同时拥有对代码库的读取和写入权限,才能添加软件包。
您可以使用 Google Cloud CLI 将软件包上传到代码库,也可以导入存储在 Cloud Storage 中的软件包。
如果您使用 Cloud Build 构建软件包,则构建可以将软件包存储在 Cloud Storage 中,以供您导入。导入或上传操作时间过长可能会超出 gcloud CLI 用于调用 API 的令牌的到期期限。如果您要添加的软件包数量非常多,不妨考虑分批添加,以便缩短每次上传或导入操作的完成时间。如需了解详情,请参阅操作系统软件包问题排查文档。
直接上传
使用 gcloud artifacts yum upload
命令将软件包上传到 Yum 仓库:
gcloud artifacts yum upload REPOSITORY \
--location=LOCATION \
--source=PACKAGES
替换以下值:
REPOSITORY
是 Artifact Registry 制品库名称。-
LOCATION
是代码库的单区域或多区域位置。 PACKAGES
是软件包的路径。
例如,如需将软件包 my-package.rpm
上传到位置 us-west1
中的 Yum 代码库 my-repo
,请运行以下命令:
gcloud artifacts yum upload my-repo \ --location=us-west1 \ --source=my-package.rpm
Cloud Storage
- 通过以下任一方式将软件包上传到 Cloud Storage:
- 直接将软件包上传到 Cloud Storage 存储分区
- 使用 Cloud Build 构建软件包并将其存储在存储分区中
- 运行以下命令:
gcloud artifacts yum import REPOSITORY \ --location=LOCATION \ --gcs-source=PACKAGES
替换以下值:
REPOSITORY
是 Artifact Registry 制品库名称。-
LOCATION
是代码库的单区域或多区域位置。 PACKAGES
是 Cloud Storage 中软件包的英文逗号分隔列表。如需上传目录中的所有软件包,请使用目录通配符 (*
) 或递归目录通配符 (**
) 上传所有子目录中的所有软件包。
例如,以下命令会将软件包
package.rpm
和directory
目录中的所有软件包从存储分区my-bucket
上传到位置us-west1
中的 Yum 代码库my-repo
:gcloud artifacts yum import my-repo \ --location=us-west1 \ --gcs-source=gs://my-bucket/path/to/package.rpm,gs://my-bucket/directory*
上传或导入操作完成后,您可以使用Google Cloud 控制台或 gcloud CLI 查看代码库中的软件包,并确认它们已成功上传。
如果您有包含大量软件包的大型代码库,则可能需要几分钟才能重新生成软件包索引,以便 Yum 客户端可以看到新软件包。
查看软件包
代码库模式:标准、远程(预览版)
如需查看软件包,您必须拥有 Artifact Registry Reader 角色的权限。Artifact Registry 不会列出软件包中的文件。
如需使用 Google Cloud 控制台或 gcloud
查看软件包和软件包版本,请执行以下操作:
控制台
在 Google Cloud 控制台中打开制品库页面。
在代码库列表中,点击相应代码库。
软件包页面列出代码库中的软件包。
点击一个软件包以查看它的版本。
gcloud
如需列出代码库中的软件包,请运行以下命令:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
替换以下内容:
如需查看软件包的版本,请运行以下命令:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
替换以下内容:
安装软件包
代码库模式:标准、远程(预览版)
在安装软件包之前,请验证您是否已配置虚拟机以从 Artifact Registry 代码库安装软件包。
如需安装软件包,请运行以下命令:
sudo yum --enablerepo=REPOSITORY install PACKAGE
替换以下值:
PACKAGE
是软件包名称REPOSITORY
是.repo
文件中配置的代码库的名称。
例如,如需从代码库 my-repo
安装软件包 my-package
,请运行以下命令:
sudo yum --enablerepo=my-repo install my-package
删除软件包
代码库模式:标准
Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.
To delete a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Select the package that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Replace the following:
PACKAGE
is the name of the package in the repository.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async
flag causes the command to return immediately,
without waiting for the operation in progress to complete.
To delete versions of a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Click a package to view versions of that package.
Select versions that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Replace the following:
VERSION
is the name of the version to delete.PACKAGE
is the name of the package in the repository.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async
flag causes the command to return immediately,
without waiting for the operation in progress to complete.
对于大型代码库,重新生成 Yum 软件包索引可能需要几分钟时间,以反映删除操作。