如何使用一个脚本构建 .deb、.rpm、.dmg 等文件

6

以下是我的问题:

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

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

通过谷歌一些关键词,我发现很难找到这样的程序,除非知道它的名字。(我确实认为应该有类似的东西。事实上,我记得我在某个地方见过它。)

2个回答

6

5
在我看来,你的方法是错误的。作为开发人员,你的工作是开发程序,而不是为各种不同的Linux发行版打包。让发行版处理打包工作。由于你对它们的打包指南的了解非常有限,你可能会创建二进制包,在某些系统上可能会以惊人的方式失败,更糟糕的是...甚至可能破坏用户的系统。
然而,你可以做到以下几点:
- 确保许可证明确简单(最好是OSI批准的许可证之一) - 列出你的依赖项,包括版本,并且不要捆绑它们 - 有合理的更新策略(即迷你/微小版本更新不会破坏API或引入巨大的变化) - 使用标准构建系统之一(根据项目的不同,可以是autotools、setup.py、maven等) - 理想情况下不要做奇怪的事情,而是学习一些好的项目如何处理(Apache项目通常有明智的方法) - 然后联系发行版,尝试获得一些有兴趣维护你的程序的软件包。

很想知道为什么是-1...也许我可以在这个过程中学到一些东西。哎,算了吧。。 - Stan
抱歉,我没有按下-1(我没有足够的声望来进行负面评价)。感谢您的回答。(为您的回答点赞,尽管@Srdjan的回答对我最有帮助。) - monnand
你并没有回答问题,而是在挑战问题本身。这似乎是因为你假设monnand想通过Linux发行版分发他的程序,但这可能并不是事实(也可能是公司内部使用,尽管这可能有些恶魔般;) ...)。 (顺便说一句,我没有投反对票。) - tssch
1
@tssch 您是正确的,我假设得太多了。我猜这可能是因为“这样用户就不需要自己编译它”。这触发了我打包经验的脑突触 :-) 我会保留这个答案,因为我认为还有一些信息价值。 - Stan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接