【问题标题】:How to modify a Debian source package to include an additional executable script?如何修改 Debian 源代码包以包含附加的可执行脚本?
【发布时间】:2019-01-04 01:08:58
【问题描述】:

目标:我想创建一个经过修改的Debian源码包,即官方rrdtool package+“一些改动”。其中一项更改是添加了一个可执行脚本。


我有这个修补程序包的秘诀,我已经用了很多年了:

dget http://bla/bla/bla.dsc
cd bla-1.0
(hack hack hack...)
dpkg-source -b .

如果补丁不 chmod 任何文件,但使用引入可执行文件的补丁,则此方法有效,按照上面的方法会产生以下消息:

dpkg-source: warning: executable mode 0755 of 'foobar' will not be represented in diff

果然,当我解压我的新源包时,foobar 存在但不可执行。


据我了解,quilt 处理基于 GNU diff+patch 的补丁。 GNU diff+patch 不处理文件权限。嗯……

那么如何在被quilt维护的源码包中引入可执行脚本呢?

Googling 没有帮助。似乎其他人已经问过了,但没有回复。

我知道我可以简单地对*.orig.tar.gz 存档进行修改,但我想尽可能避免这种情况。我只是惊讶于这是如此困难......

【问题讨论】:

    标签: debian packaging dpkg debhelper quilt


    【解决方案1】:

    与大多数涉及 Debian 打包的事情一样,我相信很可能有几种方法可以用来实现您的目标。由于我仍然是该过程的新手,因此我要建议的方法相当不雅,但也很容易实现。

    Debian Maintainers' Guide 告诉我们debian/install 文件...

    每个文件安装一行,名称为 文件(相对于顶部构建目录)然后是空格,然后是 安装目录(相对于安装目录)。一 使用它的示例是如果留下二进制 src/bar 已卸载;安装文件可能如下所示:

    src/bar usr/bin
    
    

    这意味着当这个包被安装时,会有 是一个可执行命令/usr/bin/bar。

    这让我想到,如果你为被子补丁生成的包的新可执行脚本创建了这样一个debian/install 文件,列出了它相对于构建目录根目录的路径以及你希望它驻留的绑定目录,你'将使包按需要执行。

    另一种方法可能是使用 DMM 的 this section 中概述的 postinst 脚本。

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2013-07-25
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      相关资源
      最近更新 更多