我正在编写一个高级跨平台开源应用程序。它是商业应用程序,但免费且开源(GPLv3)。
问题是,这个应用程序与数据安全有关,所以我们需要源代码能够被社区轻松审查。
reprepro
使用自己的 Debian 存储库(例如,用 创建)或创建 PPA来分发此应用程序是否更好?创建 PPA 而不是自己的存储库(+ 构建服务器)有哪些优势?
PPA 是否提供自己的保证,即是
binary package
从各自的生成的source package
,因此社区可以确信二进制文件是从没有后门的源代码生成的?
答案1
我将回答你问题的三个部分:
我认为这是一个见仁见智的问题。作为用户,我对这两种方式都没有偏好。作为开发人员,我主要出于以下原因使用 PPA。
更明显的是,您使用 Canonical 的资源而不是您自己的资源,其中包括为用户提供 GPG 密钥管理。请记住,当使用快捷方式添加 PPA 时
ppa:you/yourpackage
,一切都会得到妥善处理。这与您必须指导用户获取 gpg 密钥、将其添加到 APT 等情况形成对比。此外,一旦软件包“可构建”,它就会为多个 Ubuntu 版本构建软件包。PPA 中的软件包已经加密签名。Launchpad 将检查您部署的源代码,构建它并使用您的 PPA 密钥对其进行签名。如果您需要更高的安全性(例如,防止任何人拦截里面如果您使用 Launchpad,则应该使用自己的存储库,并自己对包进行签名。这是一个相当“锡纸帽”的情况,您更愿意管理自己的存储库,而不是信任 Launchpad。与 1 一样,这也是一个见仁见智的问题。