я создаю rpm с именем rsv-1.0, он автоматически установит файл rsv.cfg в /etc при установке rsv-1.0.rpm
пакет содержит только один файл 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
как команда оболочки
но я считаю, что это работает только при использовании rpm -ivh rsv-2.0.rpm
если вы используете rpm -Uvh rsv-2.0.rpm, файл в /etc/rsv.cfg исчезнет
Итак, мой вопрос: как сделать обновление 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
файл спецификаций для версии 1.0 — это просто раскомментировать %config и #cp
spec
для обеих версий. Похоже на ошибку в разделе%files
или%postun
. - person Aaron D. Marasco   schedule 23.06.2013