debian包在preinst中创建所需的目录

时间:2009-11-30 23:40:46

标签: debian package dpkg

我有以下debian结构:

  • 的Debian的/ usr /共享/测试
  • 的Debian的/ usr /共享/测试/检验
  • 的Debian的/ usr /共享/测试/检验/ A
  • 的Debian的/ usr /共享/测试/检验/ B

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

更新:问题是因为preinst有错误所以拆包没有机会发生。

劳伦

2 个答案:

答案 0 :(得分:3)

查看我的示例 here

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

您有几个选择:

  1. 使用生成包(二进制包)
  2. 之前的文件填充目录
  3. 构建一个包,其中将调用 MAKE 来构建包并进行安装。
  4. 在第一种情况下,您不需要通过preinst脚本创建目录:安装软件包时,包管理器将根据需要创建文件夹层次结构。

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


    去年我在Debian存储库中经历了3种不同的打包方式,相信我,需要考虑的细节很多。一个令人欣慰的是熟悉Launchpad及其PPA发布过程。

答案 1 :(得分:0)

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

E.g。来自其中一个debhelper示例文件的调用:

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

你在这里缺少一个间接层。