我正在尝试为debian构建二进制包(带有dpkg-deb --build
(,我需要将一些文件复制到目标计算机中,以使用postinst
脚本完成安装(并在之后刚刚删除它们(。
,但我不知道将它们放在哪里。
我尝试过/tmp/mypkg
,/bin/mypkgtmp/
,/usr/share/mypkg/tmp
。但是lintian为所有这些都产生了错误/警告:
- dir-or-file-in-tmp
- 依赖于拱门的利用 - in-in-li>
- subdir-in-usr-bin
这是一个带有一些二进制文件的目录,所以我唯一可以使用的地方似乎是/usr/bin/mh
。
但是/usr/bin/mh
似乎与邮件处理有关(不太清楚(。
在不产生lintian错误或警告的情况下将我的临时文件放置的正确位置是什么?
这是我的实际树:
.tmp
├── DEBIAN
│ ├── control
│ └── postinst
└── usr
├── bin
│ ├── mypkg
│ └── mh
│ └── mypkgtmp
│ ├── build
│ │ └── lib.linux-x86_64-3.4
│ │ ├── myClib.cpython-34m.so
│ │ └── mytools.py
│ └── setupCython.py
└── share
└── doc
└── mypkg
├── changelog.gz
└── copyright
thx。
您可以将文件放入/usr/lib/mypkg/
中,即使在postinst
之后不需要或有用,也可以将文件放在那里。
有一个(弱的(暗示,包装器可能会选择方便,以在策略第9.1.1节中使用与架构独立的和架构相关的文件一起使用,尽管您的特定postinst
方案当然不涵盖那里。<<<<<<<<<<<<<<<<<<<<<<
将它们保存在源目录中。也许您在那里创建一个tmp
。对象文件(.o
(和其他中间文件已生成并保留在此处。只是不要将它们放入输出目录$(DESTDIR)
中,因此它们不会包含在软件包中。并且不要放置室外建筑目录,因此建筑工具没有问题,可以从构建系统的其余部分绝缘您的包裹(。
如果文件仅对postinst
脚本有用,也许您可以简单地将它们嵌入其中?这里的文档是一种在脚本中保存一组数据块的便捷方法(如果不是纯文本,则可能是基本64编码或类似的方法(。
#!/bin/sh
set -e
t=$(mktemp -t -d mypostinst.XXXXXXXXXX) || exit
trap 'rm -rf "$t"' EXIT ERROR INT HUP TERM
cat <<: >"$t"/somedata.txt
some
verbatim
text
:
base64 <<: >"$t"/somebinary.dat
deadbeefc0ffeeman===
:
如果您的需求稍微复杂一些,也许也可以研究shar
。