[英]How to fix file conflicts when building rpm package
我正在尝试构建需要另一个 package 的 rpm package。 我想替换所需的两个文件 package 并在 %post 部分编辑它们。 但我得到一个错误
file /etc/puppetlabs/puppet/puppet.conf from install of puppet-agent-install-5.0.1-1.noarch conflicts with file from package puppet-agent-5.0.1-1.el7.x86_64
file /etc/sysconfig/puppet from install of puppet-agent-install-5.0.1-1.noarch conflicts with file from package puppet-agent-5.0.1-1.el7.x86_64
我的规格文件:
Name: puppet-agent-in
#wersja
Version: 5.0.1
Vendor: 01
Summary: 02
Release: 1
License: Apache License, Version 2.0
Requires(pre): telnet, puppet-agent >= 5.0
BuildArchitectures: noarch
BuildRoot: %{_tmppath}/BuildRoot
Source1: cer_pem.crt
Source2: cer_corpo_pem.crt
Source3: puppet.conf
Source4: puppet
Conflicts: puppet-agent-install < %{version}
Conflicts: puppet-agent-install > %{version}
Conflicts: puppet-agent-opl
%description
%install:
%{__install} -d -m 755 $RPM_BUILD_ROOT/etc/puppetlabs/puppet/dir_ssl
%{__install} -d -m 755 $RPM_BUILD_ROOT/etc/sysconfig
%{__install} -m 644 %{_sourcedir}/cer_corpo_pem.crt $RPM_BUILD_ROOT/etc/puppetlabs/puppet/dir_ssl/cer_corpo_pem.crt
%{__install} -m 644 %{_sourcedir}/cer_pem.crt $RPM_BUILD_ROOT/etc/puppetlabs/puppet/dir_ssl/cer_pem.crt
%{__install} -m 644 %{_sourcedir}/puppet.conf $RPM_BUILD_ROOT/etc/puppetlabs/puppet/puppet.conf
%{__install} -m 644 %{_sourcedir}/puppet $RPM_BUILD_ROOT/etc/sysconfig/puppet
%files
%defattr(-, root, root)
/etc/puppetlabs/puppet/dir_ssl/cer_corpo_pem.crt
/etc/puppetlabs/puppet/dir_ssl/cer_pem.crt
/etc/sysconfig/puppet
%config /etc/puppetlabs/puppet/puppet.conf
%post
#edit puppet.conf and puppet file
有没有可能解决这个冲突?
两个包不能提供相同的文件。 你必须想办法解决:
conf.d
目录中吗?puppet -c /path/to/your/puppet.conf
再次:我不建议这样做,但您可以通过提供/path/to/your/puppet.conf
来解决问题,然后在您的post
部分中弄乱真实的配置文件:
%post
mv /etc/puppetlabs/puppet/puppet.conf{,.backup}
ln -s /path/to/your/puppet.conf /etc/puppetlabs/puppet/puppet.conf
%postun
if [ $1 == 0 ]; then #uninstall
# restore file from backup when your package is uninstalled
mv /etc/puppetlabs/puppet/puppet.conf{.backup,}
fi
注意:这将适用于您的安装,但当puppet
本身更新时; 您将丢失您的配置文件,因为它将再次被 puppet rpm 中的 /etc/puppetlabs/puppet/puppet.conf 覆盖。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.