如何在 Debian 包中包含文件以供 postinst 脚本使用?

如何在 Debian 包中包含文件以供 postinst 脚本使用?

最近在进行升级之后,必须重新执行一些我已执行的手动配置更改,例如对 /etc 或 /usr/share 中的配置,我决定这次对自己更加严格,将我对系统所做的所有更改都放入软件包中,因此在下次升级时,我只需安装我的软件包并让一切准备就绪。

我的第一个包用于自定义键盘映射。以下是这篇文章:从脚本或二进制文件创建 .deb 包我已经为该软件包创建了一个文件夹,并将我的键盘映射列在 debian/install 文件中,以便安装在 /usr/share/X11/xkb/symbols 中。我还需要将符号添加到 /usr/share/X11/xkb/evdev.xml 中以便识别它们,我认为最好使用补丁来完成此操作,而不是覆盖文件。

重申一下,我想使用 patch 作为对 evdev.xml 修改的安装方法,而不是使用 quilt 来修补包源代码(这是我通过互联网搜索找到的)

因此,我在安装文件中有我的键盘映射,在 postinst 文件中有补丁命令。我的问题是我不知道如何将补丁文件包含到包中;运行 debuild 后,脚本和键盘映射在 deb 文件中,但 diff 不在,因此 postinst 脚本无法运行。

有没有办法将我的补丁(或者更好的是,一个名为 Patches 的文件夹)放入包中,以便在安装过程中使用?如果可能的话,我不想在任何地方安装这些补丁,因为它们只在安装过程中是必要的。

谢谢。

答案1

除了将它们安装在某个地方(例如)/usr/share/$package/patches/,据我所知,没有其他方法可以在 postinst 脚本运行期间使用这些文件。更重要的是,虽然这是一个仅供您使用的包,但一个包更改另一个包拥有的文件是一种不好的做法。这也意味着当另一个包更新时,您的更改将被清除。您最好使用dpkg-divert。 也可以看看这个问题

相关内容