【发布时间】:2013-03-07 04:43:25
【问题描述】:
我真的被这个小问题(我确定)困住了,所以任何帮助都将不胜感激。我用 dh_make 创建了一个标准的 ubuntu 包。这个包的目的是创建一个包,它将设置系统需要的所有 ldap 相关包,包括它的配置。我正在尝试执行的步骤之一是在备份现有文件的同时复制 /etc/ldap.conf 文件。我该怎么做呢?我试图创建一个基本上如下所示的 postinst 脚本,但我不清楚包如何存储文件,并且我收到一条错误消息,提示缺少 etc/ldap.conf 文件。最好的方法是什么?这是我的 postinst 脚本:
#!/bin/bash -xv
install -v -b etc/ldap.conf /etc/ldap.conf > /tmp/tst 2>&1
这是我的骨架结构:
root@hqd-clientb-16:~/navldapubuntu-0.1/debian# 树 ├── 更新日志 ├── 兼容 ├── 控制 ├── 版权 ├── 文档 ├──等 └── ldap.conf ├── 安装 ├── 后勤 ├── 自述文件.Debian ├── README.source ├── 规则 ├── 来源 └── 格式 ├── navldapubuntu └──等 ├── navldapubuntu.debhelper.log ├── navldapubuntu.dirs └── navldapubuntu.doc-base.EX这是我创建的包的一些附加信息。
dpkg --contents tnoldapubuntu_0.1-1_all.deb(截断输出) ./usr/ ./usr/share/ ./usr/share/doc./usr/share/doc/navldapubuntu/ ./usr/share/doc/navldapubuntu/版权 ./usr/share/doc/navldapubuntu/README.Debian ./usr/share/doc/navldapubuntu/changelog.Debian.gz ./etc/ldap.conf
【问题讨论】:
-
在 postinst 中备份?也许在preinst?检查文件是否存在:
if [ -f /etc/ldap.conf ] then cp /etc/ldap.conf /etc/ldap.conf.dist fi,对吧? -
问题不在cp的逻辑上。问题是源 /etc/ldap.conf 不存在。如何将它包含在包中,以便我的安装后脚本可以看到 /etc/ldap.conf 文件?现在我的脚本中出现错误,说明如下: install: cannot stat `/navldap-0.1/debian/etc/ldap.conf': No such file or director
-
奇怪的是,您在
/etc中没有文件并抛出错误,您没有在其他目录中?脚本无法在包中的文件上运行stat,您从哪个目录运行安装? -
对不起..我不清楚您的评论。我想要做的是将文件存储在包中(参见上面的 dpkg --contents )。创建包后,我想要安装包内的文件,并且该文件不是本地文件。我不清楚如何做到这一点。
标签: linux ubuntu debian package