как сделать обновление rpm, которое не дозирует ничего, кроме запуска команды оболочки?

я создаю 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


person user2124498    schedule 23.06.2013    source источник
comment
Пожалуйста, опубликуйте файл spec для обеих версий. Похоже на ошибку в разделе %files или %postun.   -  person Aaron D. Marasco    schedule 23.06.2013
comment
я обновил файл спецификаций для v2..   -  person user2124498    schedule 24.06.2013


Ответы (1)


Поскольку исходный файл spec был неправильным и явно не указывал файл как файл конфигурации, я думаю, что именно это его стирает.

Возможное решение этой проблемы состоит в том, чтобы раздел %pre версии 2 увидел, существует ли он, и скопировал его куда-нибудь.

порядок сценариев для обновления может сбивать с толку. Устанавливается вторая копия, вызывается их %pre/%post, а затем вызывается %preun/%postun первой копии.

person Aaron D. Marasco    schedule 24.06.2013