本页面介绍了如何在 Apt 中添加、查看和删除 Debian 软件包 代码库
准备工作
- 如果目标 Apt 代码库不存在, 创建新的代码库。
- 配置虚拟机以访问代码库。
- (可选)为 gcloud 命令配置默认值。
- 请确保元数据中的软件包名称符合 Debian 软件包名称标准。
添加软件包
仓库模式:标准
您必须同时拥有以下各项的读写权限: 以添加软件包
您可以使用 Google Cloud CLI 将软件包上传到代码库,也可以 导入存储在 Cloud Storage 中的软件包。如果您使用 Cloud Build,该构建可以为您将软件包存储在 Cloud Storage 中 导入。
如果导入或上传操作时间很长,可能会超出 gcloud CLI 用于调用 API 的令牌。如果您的 添加大量软件包,建议以较小的批次添加, 都能在更短的时间内完成 如需了解详情,请参阅操作系统软件包问题排查文档 信息。
直接上传
使用
gcloud artifacts apt upload
命令
将软件包上传到 Apt 代码库:
gcloud artifacts apt upload REPOSITORY \
--location=LOCATION \
--source=PACKAGES
替换以下值:
- REPOSITORY 是 Artifact Registry 代码库名称。
- LOCATION 是 Cloud Storage 存储分区的 存储库
- PACKAGES 是软件包的路径。
例如,将软件包 my-package.deb
上传到 Apt 代码库
在位置 us-central1
中使用 my-repo
,运行以下命令:
gcloud artifacts apt upload my-repo \ --location=us-central1 \ --source=my-package.deb
Cloud Storage
通过以下任一方式将软件包上传到 Cloud Storage:
- 将软件包直接上传到 Cloud Storage 存储桶
- 使用以下代码构建软件包: Cloud Build 并将其存储在存储桶中
运行以下命令:
gcloud artifacts apt import REPOSITORY \ --location=LOCATION \ --gcs-source=PACKAGES
替换以下值:
- REPOSITORY 是 Artifact Registry 代码库名称。
- LOCATION 是 Cloud Storage 存储分区的 存储库
- PACKAGES 是以下路径中以英文逗号分隔的软件包列表:
Cloud Storage如需上传某个目录中的所有文件包,请使用
目录通配符 (
*
) 或使用递归目录通配符 (**) 来 上传所有子目录中的所有软件包。
例如,如需上传软件包
package.rpm
以及其中的所有软件包, 将directory
目录从存储桶my-bucket
复制到 Apt 代码库my-repo
中us-central1
,请运行以下命令:gcloud artifacts apt import my-repo \ --location=us-central1 \ --gcs-source=gs://my-bucket/path/to/package.deb,gs://my-bucket/directory*
上传或导入操作完成后,您可以使用 Google Cloud 控制台或 gcloud CLI,以查看 确认它们已成功上传。
如果您的大型代码库包含大量软件包,则可能需要花费几次 重新生成软件包索引,以便对新软件包可见 Apt 客户端。
查看软件包
仓库模式:标准、远程(预览版)
如需查看软件包,您必须在 Artifact Registry 中拥有相关权限 Reader 角色。Artifact Registry 不会列出文件 文件包内。
使用 Google Cloud 控制台查看软件包和软件包版本
或 gcloud
:
控制台
打开 Google Cloud 控制台中的制品库页面。
在代码库列表中,点击相应代码库。
软件包页面列出代码库中的软件包。
点击一个软件包以查看它的版本。
gcloud
如需列出代码库中的软件包,请运行以下命令:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
地点
- REPOSITORY 是代码库的名称。如果您配置了默认代码库,则可以省略此标志以使用默认值。
- LOCATION是 单区域或多区域 location。 使用此标志查看特定位置的代码库。如果您 配置了默认位置,则可以省略此标志来使用 默认值。
如需查看软件包的版本,请运行以下命令:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
其中
安装软件包
仓库模式:标准、远程(预览版)
在安装软件包之前,请确认您已配置 正确设置软件包管理器和代码库
如需在代码库中安装软件包,请执行以下操作:
更新可用软件包的列表:
sudo apt update
安装软件包,并指定在 楼号
sudo apt install PACKAGE/REPOSITORY
替换以下值:
- PACKAGE 是软件包名称。
- REPOSITORY 是 Artifact Registry 代码库的名称。 对于远程仓库,请使用标准上游仓库的名称。
例如,如需从代码库中安装软件包
my-package
my-repo
,请运行以下命令:sudo apt install my-package -t my-repo
删除软件包
仓库模式:标准
在删除软件包或软件包版本之前,请确认您已在其中告知或解决任何重要依赖项。
如需删除软件包,请按如下所述操作:
控制台
打开 Google Cloud 控制台中的制品库页面。
在代码库列表中,点击相应代码库。
软件包页面列出代码库中的软件包。
选择要删除的软件包。
点击删除。
在确认对话框中,点击删除。
gcloud
运行以下命令:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
地点
如需删除软件包的版本,请按如下所述操作:
控制台
打开 Google Cloud 控制台中的制品库页面。
在代码库列表中,点击相应代码库。
软件包页面列出代码库中的软件包。
点击一个软件包以查看它的版本。
选择您要删除的版本。
点击删除。
在确认对话框中,点击删除。
gcloud
运行以下命令:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
地点
对于大型代码库,重新生成 Apt 软件包可能需要几分钟时间 索引以反映删除操作。