如何“艰难地”手动组装我自己的包?

我想知道如何在没有包管理器或任何其他类似工具的帮助下从程序源创建我自己的.deb包(换句话说,手动执行)。 这有多难? 我需要创建自己的存储库吗? 我需要用我的公钥或其他东西签名吗? 一个deb包是否适用于所有基于Debian的发行版,或者我是否需要为每种版本构建一个单独的版本?

编辑:我想指出我的问题和“ 最简单的Debian打包指南 ”之间的主要区别,就是说,虽然该问题的提问者希望用最少的时间和精力创建一个包,但我想要长方式,不是为了让它变得更难,而是因为我想了解包装系统是如何工作的。 总之,我想学习

这有多难?

一点也不困难。 我从头开始做所有的包装。 一旦你了解了一些工具,并了解正在发生的事情,这个过程就相当简单了。 但是,要准备花一些时间学习这些过程。

我需要创建自己的存储库吗?

存储库(例如PPA)用于将包发布到更广泛的世界。 所以,是的,如果您希望人们能够安装软件包,您需要将其包含在Debian / Ubuntu中,或者您需要将其发布到存储库中。

PPA还可以访问Launchpad构建服务器场,因此他们可以从源包构建二进制包。 但你也可以在本地做到这一点。 在打包时,你真的想在本地进行测试构建,而不是等待LP构建你的软件包(LP构建队列可能需要数小时)。

我需要用我的公钥或其他东西签名吗?

如果要上传到PPA,则需要使用私钥对源包进行签名。

一个deb包是否适用于所有基于Debian的发行版,或者我是否需要为每种版本构建一个单独的版本?

安全的答案是否定的。 但是有时候生成一次deb可以在所有当前的Debian和Ubuntu版本上运行相当简单。 这取决于您使用的包和工具链。

我建议:

  • Ubuntu包装指南
  • 这是Debian包装的介绍
  • Debian新维护者指南

InkBlend,在启动板上有一个实验项目,旨在使应用程序更容易:

https://launchpad.net/pkgme

该项目的目标是让任何开发人员都能够非常轻松地从源构建系统中已包含的元数据创建Debian源包。

有一个名为dh_make的旧程序,它应该包含在’ubuntu-dev-tools’软件包中,但在确定如何处理源代码时不太自动。

最后,本指南非常出色,将解释包装的所有方面:

http://developer.ubuntu.com/packaging/html/