当您是原作者时,制作源代码和二进制包的最简单方法是什么?

当您是原作者时,制作源代码和二进制包的最简单方法是什么?

到目前为止,我读过的 Debian 打包指南都假设打包者不是维护者,因此需要有原始的 tarball、补丁等。

如果我有一个使用“make”(而不是自动工具等)构建的应用程序,我需要什么样的打包指南?

我不想制作无意义的 tarball 和空补丁。

我确实想要源代码和二进制包。

答案1

Debian 以原作者身份进行打包,这些软件包类型称为本国的

  • debian文件夹是源树(源档案)的一部分。
  • 没有 Debian 补丁。

参考:

指南有很多,但尽量坚持使用 Debian/Ubuntu 官方指南。此外,在开始之前,请务必验证其更新日期。我建议从这里开始:

Debian 打包教程它清晰地概述了发行版所使用的上游工作流程。(许多教程都忽略了这一点)

答案2

没人想要无意义的东西。请放心,采用 .deb 打包的社区(Debian、Ubuntu、Mint 等)已经就其中的所有内容进行了深入讨论。

关于包装的基本思想是:

  • tarball 不与发行版相关,它是程序独立于发行版的源代码树。如果它已经知道如何在特定发行版中运行 - 很好 - 如果不知道,那就不行。这是创建包时必须命名为 yourname_version.orig.tar.(xz,gz,bz2) 的 tarball。

  • tarball 包含特定于 Debian 特定版本的所有内容,位于名为 debian 的单独文件夹中。将其分开的一个原因(问题已经准备好)是,单个包装通常与维护软件本身的包装不同。这有助于在软件更新时不会覆盖包装。并且可以确保对原始源代码树没有执行任何隐藏的更改。RedHat 开发人员不希望看到特定于 debian 的部分,因此每个人都乐于将 debian 文件夹与其他文件夹分开。

所以,有两个 tarball。我认为开销不会太大。主要关注的是上游源代码树的完整性。

根据你居住的地方和你的社交能力,有不同的方法来开始学习如何打包。对于很多人来说,只是浏览一下

就是他们想要的一切。其他人则对

  • dh-make 包提供了 dh_make,基本上可以自动打包

其他人又会看看

与一位社交能力较强的 Debian 开发人员见面,指导他度过最初最艰难的时刻。一旦您掌握了一些常规,从 0 到可安装包真的只需要几分钟,基本上您等待的主要是编译时间,所以在我看来,要求并不过分。然后大部分工作都投入到包描述中,或者上游不太关心的部分,例如缺少手册页或可选部分,例如自动通知更新。

祝你好运。

答案3

我做的两件事是:

  1. 创建 debian 文件夹

    在文件夹中,我根据需要创建以下文件(即不要创建不需要的文件):

     changelog
     compat
     control
     rules
     shlibs.local
     source/format
     source/options
     project-name.docs
     project-name.install
     project-name.preinst
     project-name.postinst
     project-name.prerm
     project-name.postrm
     project-name.service
     project-name.logrotate
     project-name.cron.daily
     project-name.cron.monthly
     ...
    
  2. 然后我使用以下命令构建包:

     dpkg-buildpackage -us -uc
    

    真的,我使用脚本。该命令会将各种文件弄乱您的源代码树。因此,我首先制作一个副本,然后在副本中运行该命令。然后我可以删除副本。

     cd project-name
     VERSION=`dpkg-parsechangelog --show-field Version`
     cd ..
     cp -r project-name project-name-${VERSION}
     cd project-name-${VERSION}
     dpkg-buildpackage -us -uc
    

debian/source/options我有:

tar-ignore = "tmp"
tar-ignore = ".git"

因为如果没有这两个,那么这些文件夹就会被添加到您的源包中,而它可能不应该被添加。

另一种方法是使用 PPA 系统https://launchpad.net/这样做的好处是,可以非常轻松地在任何机器上安装生成的软件包。如果您想共享生成的软件包,它也是公开的(如果您不想共享,那么显然您不应该使用那个)。

相关内容