ubuntu - bazel 构建的 deb 可以上传到 PPA 吗?

标签 ubuntu debian bazel deb launchpad

使用 bazel 的内置 pkg_deb规则,我创建了一个 debian 包。
我想将此 deb 文件上传到我的 PPA ,但我发现这很有挑战性。

据我所知,bazel 创建了 PPA 不允许的“二进制 debian 包”。相反,我必须将其转换为“源 debian 包”。这样做对我来说并不明显。我在网上找到的示例显示了非常简单的项目,其 Makefile 为满足 Ubuntu 启动板的需求而量身定制。当您将某些内容上传到 PPA 时,我认为它会在沙盒环境中构建(我猜是 "reproducible builds" 计划的一部分)。

我正在寻找上传由 bazel 构建的 debian 文件的最简单方法。由于 bazel 通过规则抽象了许多构建细节,我不清楚我是否可以将其转换为某种 Makefile——或者是否有办法完全避免这种情况。

有没有人有使用 bazel 构建 debs 并将它们上传到 PPA 的经验?或者更一般地说,采用二进制 debian 包并将其作为源 debian 包来满足 PPA 的要求?

我想我必须编写一个类似于 bazel 项目正在做的自定义规则:
https://github.com/bazelbuild/bazel/blob/e67c961905792cd63950c6f6efc33275ad243c49/scripts/packages/debian/BUILD#L119 ,但是很难想出一个有意义的编译命令。

最佳答案

PPA 可以为所欲为,因为对于 PPA 中可以包含的内容没有任何规定。 Debian 的软件包仓库有 rules for upstream sources ,其中不包含二进制 blob。处理此问题的理想方法是使用 apt从源代码构建时引入 Bazel,但截至 2020 年中 Bazel can't be used in Debian upstream either .

关于ubuntu - bazel 构建的 deb 可以上传到 PPA 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56259075/

相关文章:

json - 如何使用cloudformation复制AMI

git - 配置 git repo - Ubuntu 服务器

ubuntu - 通过 Ansible 使用选项 --disabled-password 创建用户

python - os.rename()错误不存在这样的文件或文件夹

java - 如何在 Android Studio 中使用 FCM 和 Bazel?

c++ - 使用 Bazel 构建后自动复制可执行文件

php - 尝试安装 PHP curl 时出错 - Ubuntu 14.10

linux - cppcms - 共享库 - Linux

r - 无法在 Google Compute Engine (Debian Wheezy) 上运行的 R 3.2.2 中更新/安装软件包

Bazel 选择在 ctx.file 中失败