Debian 如何用一个脚本构建.deb.rpm.dmg等

Debian 如何用一个脚本构建.deb.rpm.dmg等,debian,rpm,Debian,Rpm,我的问题是: 我有一个程序,希望以二进制格式分发,这样用户就不需要自己编译它了 我已经构建了一个.deb包。但是,正如我所记得的,应该有一些程序,它接受一个配置文件,并以不同的格式生成不同的二进制包,如.deb、.rpm,甚至.dmg、.msi等。这意味着,我只需要告诉它包中应该包含哪个文件(以及如何构建),它就可以为我生成不同的包 在谷歌搜索了一些关键词后,我注意到在不知道名称的情况下很难找到这样的程序。(我确实认为应该有类似的东西。事实上,我记得我在某处见过它。)Effing Package

我的问题是:

我有一个程序,希望以二进制格式分发,这样用户就不需要自己编译它了

我已经构建了一个.deb包。但是,正如我所记得的,应该有一些程序,它接受一个配置文件,并以不同的格式生成不同的二进制包,如.deb、.rpm,甚至.dmg、.msi等。这意味着,我只需要告诉它包中应该包含哪个文件(以及如何构建),它就可以为我生成不同的包


在谷歌搜索了一些关键词后,我注意到在不知道名称的情况下很难找到这样的程序。(我确实认为应该有类似的东西。事实上,我记得我在某处见过它。)

Effing Package Management可以同时执行rpm和deb(从 )

对于您正在谈论的那种跨平台部署,您可以尝试


*注意-我从未使用过这些工具,但我听说过它们

我认为你的方法是错误的。作为开发人员,您的工作是开发程序,而不是为所有不同的Linux发行版打包。让我们来处理包装。由于你对他们的包装指南的了解是不存在的,你可能会创建二进制软件包,这些软件包在某些系统上会以惊人的方式失败,更糟糕的是……甚至会破坏用户的系统

但是,您能做的事情是:

  • 确保许可证清晰简单(最好是OSI批准的许可证之一)
  • 列出您的依赖项,包括版本,不要捆绑它们
  • 具有合理的更新策略(即迷你/微型版本更新不会破坏API或引入巨大的更改)
  • 使用标准构建系统之一(根据项目的不同,它可以是autotools、setup.py、maven等)
  • 理想情况下,不要做奇怪的事情,但要了解一些好的项目是如何做事情的(Apache项目通常有合理的方法)
  • 然后联系发行版,尝试获取一些对维护您的程序感兴趣的软件包

如果能知道-1的原因,我会很高兴……也许我可以从中学到一些东西。哦,很抱歉。但我没有按-1(我没有足够的声望来否决投票)。谢谢你的回答。(投票支持你的答案,尽管@Srdjan的答案对我帮助最大。)你不是在回答这个问题,而是在挑战这个问题本身。这似乎是因为您假设monnand希望通过Linux发行版分发他的程序,而事实可能并非如此(可能是公司内部的,也可能是邪恶的;)…)。(顺便说一句,我没有投反对票。)@tssch你是对的,我想得太多了。我猜这可能是因为“用户不需要自己编译”。这触发了我的打包机体验大脑突触:-)我会留下答案,因为我相信还有一些信息价值