我构建了一个名为 rsv-1.0 的 rpm,当您安装 rsv-1.0.rpm 时,它会自动将 rsv.cfg 文件安装到 /etc
该软件包仅包含一个文件 etc/rsc.cfg
如果我想在文件 rsv.cfg 中为更新的 rpm 做一些更改,比如 rsv-2.0.rpm
然后我创建了一个空目录并将它的皮重到 rsv-2.0.tar.gz 包括在新的 SPEC 文件中
%post
if [ -f /etc/rsv.cfg ]; then
/bin/echo "hello-2.0" > /etc/rsv.cfg
fi
作为 shell 命令
但我发现它仅在您使用 rpm -ivh rsv-2.0.rpm 时才有效
如果使用 rpm -Uvh rsv-2.0.rpm,/etc/rsv.cfg 中的文件会消失
所以我的问题是,如何制作一个除了运行 shell 命令之外什么都不做的更新 rpm?
更新 v2 的规范文件
Name: rsv
Version: 2.0
Release: 1
Summary: rsv rpm
Group: rsv
License: GPL+
URL:
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
#BuildRequires:
#Requires:
%description
%{summary}
%prep
%setup -q
%build
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
#cp -a * %{buildroot}
%clean
rm -rf %{buildroot}
%post
if [ -f /etc/rsv.cfg ]; then
/bin/echo "hello-2.0" > /etc/rsv.cfg
fi
%files
%defattr(-,root,root,-)
%doc
#%config %{_sysconfdir}/%{name}.cfg
%changelog
v1.0 的规范文件只是取消注释 %config 和 #cp