【发布时间】:2016-07-12 09:32:00
【问题描述】:
我正在制作一个依赖于相当复杂的预安装脚本的 debian 包(具体来说,该脚本处理包升级,如果已经安装了旧版本,那么在旧文件之前运行一些准备步骤很重要替换为新的)。 preinst 依赖于一些额外的资源,我想将它们包含在包中。但是,我无法弄清楚将这些资源放在哪里,以及安装软件包后 preinst 脚本应该在哪里查找它们?
【问题讨论】:
我正在制作一个依赖于相当复杂的预安装脚本的 debian 包(具体来说,该脚本处理包升级,如果已经安装了旧版本,那么在旧文件之前运行一些准备步骤很重要替换为新的)。 preinst 依赖于一些额外的资源,我想将它们包含在包中。但是,我无法弄清楚将这些资源放在哪里,以及安装软件包后 preinst 脚本应该在哪里查找它们?
【问题讨论】:
因为 preinst 维护者脚本在软件包的文件系统内容被解包之前运行,所以除了 preinst 内容的内容之外,您不能依赖任何其他内容,或者已经从 Pre-Depends 中列出的包或基本集中的包中解压出来的东西。
因此,您可以选择将附加数据打包到 preinst 脚本中,例如通过内联它或使用 base64 或 uuencode 进行编码;或者将数据打包到 foo-data 包中,并在 foo-data 上制作 foo(带有 preinst 的包)Pre-Depend。但是要考虑到 Pre-Depends 是一种非常强硬的依赖关系,它会给包管理器前端带来系统升级场景的困难。
【讨论】: