在自定义和重建Debian软件包时,如何添加其他源文件?
我试图通过添加一些额外的源文件(不包括在上游存档中)和应用一些补丁来定制和重建Debian源代码包。更具体地说,我尝试通过添加自定义插件来定制Ubuntu“ppp”包。我做了以下工作: 1) 我下载并解压带有“apt get source ppp”的源代码包 2) 我进入“ppp-x.x.x”子树,用“dpkg buildpackage-uc”干净地重建包,以确保源包一切正常。(实际上现在一切都好了) 3) 现在,我将定制补丁放在“debian”子树的“debian/patches”子文件夹中。然后我在“debian/patches/series”文件中引用它们。我还将自定义源文件放在一个文件夹中,比如“tacacs”,并将该文件夹放在“debian/extra”子文件夹中。我不确定我是否应该把它们放在那里,但我看不到任何更适合它们的地方 4) 现在我尝试再次运行“dpkg buildpackage-uc”来构建一个定制包。我看到以下情况:在自定义和重建Debian软件包时,如何添加其他源文件?,debian,packaging,customizing,Debian,Packaging,Customizing,我试图通过添加一些额外的源文件(不包括在上游存档中)和应用一些补丁来定制和重建Debian源代码包。更具体地说,我尝试通过添加自定义插件来定制Ubuntu“ppp”包。我做了以下工作: 1) 我下载并解压带有“apt get source ppp”的源代码包 2) 我进入“ppp-x.x.x”子树,用“dpkg buildpackage-uc”干净地重建包,以确保源包一切正常。(实际上现在一切都好了) 3) 现在,我将定制补丁放在“debian”子树的“debian/patches”子文件夹中。
- “dpkg buildpackage/dpkg source/Cutter”尝试应用我的自定义 我的自定义源的补丁程序,无法找到它们。所以它失败了 构建完全失败李>
- 构建失败并停止后,我可以在构建树中看到我的自定义插件(“tacacs”)子文件夹,但它是空的。 所以补丁失败也就不足为奇了
所以问题是:我应该把我的自定义源文件放在哪里?我还应该做什么才能让“dpkg source-b”看到它们并将它们注入到构建树中?我找到了两种解决问题的方法:
man dpkg源代码中所述)。辅助焦油球
在构建和附加之前在主柏油球上提取
代码到达构建树,在那里可以对其进行修补和编译。
事实上,我的附加代码已经打包到归档文件中,所以我只需重命名归档文件
不幸的是,这个方法对我不起作用,因为代码来自补充tarballs
只能注入到构建树的根目录中,以及pppd插件代码
应该放在pppd/plugins
子目录中。但我不能
找到一种方法,以正确的方式创建代码的符号链接
带有dpkg源代码/coult
的子目录
- 我将额外的源代码直接解压缩到使用
(或dpkg source-x
)创建的干净源代码树中的适当位置apt get source
- 然后我将
应用到源目录,并在dpkg source--commit
子目录中获得了一个补丁,以及一个引用新创建补丁的适当的debian/patches
文件。此修补程序包含将其他源放置到源目录树时发生的所有更改。因此,通过重新应用此修补程序,可以在适当的位置重新创建其他源系列
- 我将新创建的补丁和
文件保存到临时位置,并删除了源代码树系列
- 我用
重新创建了干净的源代码树dpkg source-x
- 我再次将保存的补丁和
文件放入源代码树的series
文件夹中。我还编辑了debian/patches
和debian\changelog
,指出应该构建新版本的包,而不是将新包与原始包弄乱debian\control
- 现在,我可以使用
构建一个新版本的包。这还不是最终版本,因为它不包含我的自定义补丁,但它已经包含我的自定义源代码dpkg buildpackage-uc-us
- 最后,我将自定义补丁添加到
目录中,将它们的引用添加到debian/patches
文件中,再次运行debian/patches/series
并获得了我想要的包dpkg buildpackage
尽管这种方法可以将源代码注入到源代码树中的任何所需位置,但它有一个缺点,即额外的源代码应该手动解包,与原始代码混合并转换为补丁。每次更新此附加代码时,都必须重复所有这些操作。而在第一种方法中,用新版本替换补充tarball就足够了,并确保所有后续补丁都能很好地应用。IIRC您需要在
debian/files
或类似的文件中枚举它们。@tripleee谢谢您,但我相信您在确切意义上对debian/files
的理解是错误的。正如我看到的,这个文件包含在构建中生成的输出文件列表。在debian
目录中还有很多其他文件包含这些列表,也许我必须尝试所有这些文件,但我以前没有得到正确的答案。也许我将其与debian/install
混合使用。快速谷歌搜索表明,这是您枚举希望安装在某处的非标准文件的地方。