Как сделать обновление оборотов в минуту, которые ничего не дозируют, кроме запуска команды оболочки?
Я создаю 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 исчезнет
поэтому мой вопрос, как сделать обновление об / мин, которое ничего не дает, кроме запуска команды оболочки?
обновить файл спецификации для 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 просто uncomment %config и #cp
1 ответ
Потому что оригинал spec
Файл был неверным и явно не перечислял файл как файл конфигурации, я думаю, это то, что его стирает.
Возможное исправление для этого - иметь версию 2 %pre
раздел посмотреть, если он существует, и скопировать его куда-нибудь.
Сценарий заказа для обновления может сбивать с толку. Вторая копия установлена, с их %pre/%post
называется, а затем первый экземпляр %preun/%postun
называется.