我想在 redhat/fedora/centos 系统上使用 yum 分发我的商业应用程序(为了易于使用和易于更新)。
用户仍然必须购买帐户才能使用该应用程序(通过用户名/密码登录系统),但应用程序本身可以免费下载 - 尽管它以二进制、闭源形式分发。
百胜是正确的选择吗?如果是这样 - 最好在我的服务器上设置一个远程存储库来托管 yum 包吗?我在网上找不到太多关于如何设置私有远程 yum 存储库的信息。如果这是我应该使用的方法,有人有任何资源可以做到这一点吗?
谢谢
答案1
创建您的(二进制)RPM 包,并且不要忘记使用您的 GPG 密钥对它们进行签名。
创建 yum 存储库布局和元数据文件,例如
createrepo
命令/工具。
建议:在创建存储库后通过运行以下命令对存储库进行签名:gpg --detach-sign --armor repodata/repomd.xml
这将
repomd.xml.asc
在 repodata 目录中创建一个文件,对于现代版本的 yum,这将允许 yum 验证存储库元数据是否来自 gpg 密钥的所有者。将生成的存储库目录布局发布到您的合适的子域上,例如,
https://repo.example.com/yum/.....
当您为不同的发行版、主要版本、CPU 架构等创建不同的二进制 RPM 包时,请考虑具有多个存储库的更复杂的目录布局。将您的 ASCII 装甲公共 GPG 密钥发布到合适的位置,例如
https://repo.example.com/publickeys/example-appp-rpm-signing-key.asc
在您的应用程序的安装说明中,指示人们添加存储库文件 /etc/yum.repos.d/example-app.repo:
[example-app] name=Example App baseurl=https://repo.example.com/yum/..... gpgcheck=1 enabled=1 gpgkey=https://repo.example.com/publickeys/example-appp-rpm-signing-key.asc
将您的公共签名密钥添加到 RPM 密钥环
[sudo] rpm --import ttps://repo.example.com/publickeys/example-appp-rpm-signing-key.asc
或者 ;提供结合步骤 5 和 6 的 RPM 包;类似于 EPEL 分发发布包的方式:https://docs.fedoraproject.org/en-US/epel/