У меня есть специфицированный файл rpm, который производит rpm с именем cdplayer-1.10.x86_64.rpm. Rpm на целевых машинах (rpm -ivh cdplayer-1.10.x86_64.rpm --nodeps) создает каталог «/ opt/cd-player /» и помещает в него все файлы. Мне нужно, когда пользователь запускает команду rpm на целевом m/c, тогда он должен проверить, существует ли каталог, и если да, то создайте другой каталог «/ opt/cd-player_2 /» и установите там файлы, которые иначе устанавливаются как «/ opt/cd- проигрыватель /». Если мы запустим еще один, тогда он должен создать «/ opt/cd-player_3 /».Проверьте, существует ли установочная папка rpm на целевой машине, а затем создайте другую папку.
Spec файла:
BuildArch: x86_64
Prefix: /opt
code_root=/home/user/
%install
rm -rf $RPM_BUILD_ROOT
vds_root=$RPM_BUILD_ROOT/opt/cd-player
cp $code_root/abc $vds_root/abc
%files
%defattr(-,root,root)
/opt/cd-player
%pre
count=`rpm -qa | grep cd-player | wc -l`
name=`rpm -qa | grep cd-player`
if [ $count -gt 0 ]; then
echo
echo "Error: $name is already installed!!!"
echo
exit 1
fi
Как я создать каталог перед установкой и извлечь обороты там?
Thank you. Вы дали подсказку, и теперь я решил ее. Что я сделал, я устанавливаю rpm по умолчанию в/tmp /, а затем в% post section Я проверяю счет «/ opt/cd-player». Если его более одного, то я перемещаю его в/opt как cd-player_2 и так далее. Поскольку у меня нет символических ссылок, у меня нет проблем, иначе я бы ее отрегулировал. – Manish
Теперь вы не можете удалить RPM ... и предположите, что '/ tmp' находится в одном разделе/имеет достаточно места ... Проект Fedora имеет всю документально оформленную и хорошо продуманную политику для этого и вы проигнорировали это ... –
Я согласен, что не могу удалить с помощью rpm -e, но я могу удалить его, и теперь у меня нет проблем. Моя конечная цель состояла в том, чтобы иметь несколько экземпляров cd_player, каждый из которых имеет несколько разных свойств. Мне нужна была новая инсталляция каждый раз, поэтому я попробовал это. – Manish