检查目标机器上是否存在 rpm 安装文件夹,然后创建另一个文件夹

Check if installation folder of rpm exists on target machine then create another folder

我有一个 rpm 规范文件,它生成一个名为 cdplayer-1.10.x86_64.rpm 的 rpm。目标机器上的 rpm (rpm -ivh cdplayer-1.10.x86_64.rpm --nodeps) 创建目录“/opt/cd-player/”并将所有文件放入其中。我需要的是当用户 运行s rpm 命令在目标 m/c 上时,它应该检查目录是否存在,如果存在,则创建不同的目录“/opt/cd-player_2/”并在那里安装文件,否则安装作为“/opt/cd-player/”。如果我们再 运行 一个,那么它应该创建“/opt/cd-player_3/”。

规格文件:

  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

我如何在安装之前创建目录并在那里提取 rpm?

RPM 不支持这种安装方式。如果您想要多个版本,您需要将它们安装到预定义的目录中,然后使用某种符号链接或其他内容指向您想要的版本 - 请参阅 Packaging:Alternatives.