2015-02-12 3 views
0

У меня есть специфицированный файл 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 

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

ответ

3

RPM не поддерживает этот тип установки. Если вам нужны несколько версий, вам необходимо установить их в предопределенные каталоги, а затем иметь какую-то символическую ссылку или что-то, что нужно указать на нужную вам - см. Packaging:Alternatives.

+0

Thank you. Вы дали подсказку, и теперь я решил ее. Что я сделал, я устанавливаю rpm по умолчанию в/tmp /, а затем в% post section Я проверяю счет «/ opt/cd-player». Если его более одного, то я перемещаю его в/opt как cd-player_2 и так далее. Поскольку у меня нет символических ссылок, у меня нет проблем, иначе я бы ее отрегулировал. – Manish

+1

Теперь вы не можете удалить RPM ... и предположите, что '/ tmp' находится в одном разделе/​​имеет достаточно места ... Проект Fedora имеет всю документально оформленную и хорошо продуманную политику для этого и вы проигнорировали это ... –

+0

Я согласен, что не могу удалить с помощью rpm -e, но я могу удалить его, и теперь у меня нет проблем. Моя конечная цель состояла в том, чтобы иметь несколько экземпляров cd_player, каждый из которых имеет несколько разных свойств. Мне нужна была новая инсталляция каждый раз, поэтому я попробовал это. – Manish

 Смежные вопросы

  • Нет связанных вопросов^_^