debian 软件包在 preinst 中创建所需的目录
题
我有以下 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
您有几个选择:
- 用文件填充目录 前 生成包(二进制包)
- 建个 来源 包在哪里 制作 将被调用来构建包并安装它。
在第一种情况下,您不需要通过创建目录 preinst
脚本:如果需要,安装包时包管理器将创建文件夹层次结构。
在第二种情况下,您需要使用 mkdir -p
在期间创建文件夹层次结构 install
阶段。
去年我已经尝试过 3 种不同的 Debian 存储库打包方式,相信我,需要考虑的细节有很多。一种解脱是熟悉了 Launchpad 及其 PPA 发布流程。
其他提示
您需要名为以下任一的包中的那些 tmp
或者与 debian/control 中列出的第一个软件包相同,具体取决于您选择的 debhelper 兼容模式版本。
例如。来自其中一位的电话 debhelper
示例文件:
$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
您在这里缺少了一层间接性。
不隶属于 StackOverflow