我在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。
答案 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
谢谢&问候。