【发布时间】:2016-04-12 03:21:35
【问题描述】:
我正在开发一个将文件部署到 /opt 和 /etc 的 RPM 包。
在大多数情况下,它都可以正常工作,除了对于给定的环境,不允许写入 /etc ....
所以我使用Relocations 将 /etc 文件部署到其他位置:
Relocations : /opt /etc
通过指定 --relocate 选项,我可以将 /etc 文件部署到另一个位置:
rpm -ivh --relocate /etc=/my/path/to/etc mypackage.rpm
现在的问题是,在 postinstall 脚本中,有一些对 /etc 的硬编码引用在部署包时不会被替换:
echo `hostname --fqdn` > /etc/myapp/host.conf
我希望有一种方法(宏、关键字、...)来代替硬编码路径,以便在 rpm 执行期间执行替换。
如果您对此有任何信息,我将非常感谢您的帮助。
提前致谢
PS:请注意,这与之前提出(并已回答)的与根路径重新定位相关的问题不是重复的,因为我们正在处理多个重新定位路径以及我们需要处理每个路径的事实在 rpm scriptlets 期间分别
【问题讨论】:
-
但也可以在这里查看你的答案](stackoverflow.com/a/25386412/258523) 关于可重定位包如何不与
yum一起使用,并且通常很难做到正确。在我看来,您可能只想始终使用/opt位置作为您的包裹并完成它。 -
您好,感谢您的建议,问题是软件包同时部署到 /opt 和 /etc,所以我需要在 %post 中获取重定位。您提到的帖子仅使用一个重定位...
-
我作为可能的重复链接到的问题提到了多个重定位前缀(尽管很微妙)。
标签: centos redhat rpm rpm-spec