使用 Gitlab 作为 yum 仓库?

Using Gitlab as a yum repository?

我的客户正在从 Nexus(它有一个 yum 存储库)迁移,他们想使用 Gitlab。我知道 Docker 可以通过其 maven 功能保存 docker 图像和 JAR 文件。但是 Gitlab 是否也允许您托管 yum 存储库?谷歌搜索后我找不到任何东西。

您可以在 Gitlab 注册表中存储 rpm 包(或 .deb 等),但该包类型没有官方支持,因此您必须使用 "通用”版本。这样做的缺点是您无法将 Gitlab 注册表用作 yum 存储库,但是您可以执行以下操作:

#this downloads the package with filename `:filename:`
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:project_id:/packages/generic/:package_name:/:package_version:/:filename:"

# Use rpm to install a package from a local file instead of a yum repo:
rpm -i :filename:.rpm
# For this use case, the file will have to be a .rpm file

-i 标志告诉 rpm 安装包。另一种选择是 yum localinstall :filename.rpm:.

必须在您的 Gitlab 实例上启用通用包(如果您使用的是自托管版本)。

通用包文档在这里:https://docs.gitlab.com/ee/user/packages/generic_packages/#download-package-file

这里是一个使用通用包的示例 .gitlab-ci.yml 文件:https://gitlab.com/guided-explorations/cfg-data/write-ci-cd-variables-in-pipeline/-/blob/master/.gitlab-ci.yml