我有以下 Debian 结构:

  • debian/usr/share/test
  • debian/usr/share/test/测试
  • debian/usr/share/test/test/a
  • debian/usr/share/test/test/b

使用 dpkg-deb --build 构建软件包并使用 dpkg -i 安装后,如果文件夹 test 不存在,它似乎不会自动创建它们。我需要在 preinst 脚本中手动创建它们吗?

更新:问题是因为 preinst 出现错误,因此没有机会进行解包。

洛朗

有帮助吗?

解决方案

看我的一个例子 这里.

debian/DEBIAN 
debian/usr/bin
debian/usr/lib

您有几个选择:

  1. 用文件填充目录 生成包(二进制包)
  2. 建个 来源 包在哪里 制作 将被调用来构建包并安装它。

在第一种情况下,您不需要通过创建目录 preinst 脚本:如果需要,安装包时包管理器将创建文件夹层次结构。

在第二种情况下,您需要使用 mkdir -p 在期间创建文件夹层次结构 install 阶段。


去年我已经尝试过 3 种不同的 Debian 存储库打包方式,相信我,需要考虑的细节有很多。一种解脱是熟悉了 Launchpad 及其 PPA 发布流程。

其他提示

您需要名为以下任一的包中的那些 tmp 或者与 debian/control 中列出的第一个软件包相同,具体取决于您选择的 debhelper 兼容模式版本。

例如。来自其中一位的电话 debhelper 示例文件:

$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install

您在这里缺少了一层间接性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top