保留.spec文件中的rpm升级文件/目录(rpmbuild)

时间:2014-10-16 14:22:11

标签: rpmbuild rpm-spec

我在RHEL上写了一个.spec文件,我正在使用rpmbuild构建RPM。我需要有关如何处理下面情况的想法。

我的RPM在第一次安装在安装文件夹中时会创建一个空的日志目录,如下所示

 /opt/MyInstallation-1.0.0-1/some executables
 /opt/MyInstallation-1.0.0-1/lib/carries shared objects(.so files)
 /opt/MyInstallation-1.0.0-1/config/carries some XML and custom configuration files(.xml, etc)
 /opt/MyInstallation-1.0.0-1/log--->This is where application writes logs

当我的RPM将MyInstallation-1.0.0-1升级到MyInstallation-1.0.0-2时,我会按照自己的意愿完成所有操作。

但是,我的问题是如何保留用MyInstallation-1.0.0-1编写的日志文件?或者将日志目录精确复制到MyInstallation-1.0.0-2。

2 个答案:

答案 0 :(得分:0)

我相信如果您将目录标记为%config,则预计用户将拥有文件,因此不会单独使用。

答案 1 :(得分:0)

我通过点击和试用方法找到了解决方案或解决方法:)

我在RHEL 6.3 x86_64上使用rpmbuild版本4.8.0。我相信它也适用于其他发行版。

如果您只使用一个名称安装,例如“MyInstallation”而不是“MyInstallation-version number-RPM Build Number”,并创建“将日志目录作为标准目录(其上没有其他标志)”[请参阅原始问题的场景]每当升级时,通常不要触摸日志目录.RPM会保留其内容。所有你需要做的就是确保你在安装部分保留下面一行。

%安装 install --directory $ RPM_BUILD_ROOT%{_ prefix} /% {name} / log

这里,前缀和名称是宏。这与基本概念无关。

关于配置文件,以下是一个非常精确的表,可以帮助您保护配置文件。同样,此规则不能应用于我们的应用程序创建的日志。

http://www-uxsup.csx.cam.ac.uk/~jw35/docs/rpm_config.html

谢谢&问候。