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

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

我有一个rpm规范文件,它生成一个名为cdplayer-1.10.x86_64.rpm的rpm。目标机器上的rpm(rpm-ivh cdplayer-1.10.x86_64.rpm--nodeps)创建一个目录“/opt/cd player/”并将所有文件放入其中。我需要的是,当用户在目标m/c上运行rpm命令时,它应该检查目录是否存在,如果存在,则创建不同的目录“/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不支持此类安装。如果需要多个版本,则需要将它们安装到预定义的目录中,然后使用某种符号链接或指向所需版本的东西-请参阅。

RPM不支持这种安装。如果需要多个版本,则需要将它们安装到预定义的目录中,然后使用某种符号链接或指向所需版本的东西-请参阅。

RPM不支持这种安装。如果需要多个版本,则需要将它们安装到预定义的目录中,然后使用某种符号链接或指向所需版本的东西-请参阅。

RPM不支持这种安装。如果您想要多个版本,您需要将它们安装到预定义的目录中,然后使用某种符号链接或指向所需版本的东西-请参阅。

谢谢。您给出了提示,现在我解决了它。我所做的是默认情况下在/tmp/中安装rpm,然后在%post部分中检查“/opt/cd player”的计数。如果它不止一个,那么我将其移动到/opt as cd-player_2,依此类推。由于我没有符号链接,我没有问题,否则我会调整它。你现在不能卸载RPM。。。假设
/tmp
在同一个分区上/有足够的空间。。。Fedora项目对此有一个完整的文件化和深思熟虑的策略,而您却忽略了它……我同意我不能使用rpm-e卸载,但我可以删除它,我现在似乎没有任何问题。我的最终目标是拥有多个cd_播放器实例,每个实例都有一些不同的属性。我每次都想要一个新的安装,这就是我为什么尝试这个。谢谢。您给出了提示,现在我解决了它。我所做的是默认情况下在/tmp/中安装rpm,然后在%post部分中检查“/opt/cd player”的计数。如果它不止一个,那么我将其移动到/opt as cd-player_2,依此类推。由于我没有符号链接,我没有问题,否则我会调整它。你现在不能卸载RPM。。。假设
/tmp
在同一个分区上/有足够的空间。。。Fedora项目对此有一个完整的文件化和深思熟虑的策略,而您却忽略了它……我同意我不能使用rpm-e卸载,但我可以删除它,我现在似乎没有任何问题。我的最终目标是拥有多个cd_播放器实例,每个实例都有一些不同的属性。我每次都想要一个新的安装,这就是我为什么尝试这个。谢谢。您给出了提示,现在我解决了它。我所做的是默认情况下在/tmp/中安装rpm,然后在%post部分中检查“/opt/cd player”的计数。如果它不止一个,那么我将其移动到/opt as cd-player_2,依此类推。由于我没有符号链接,我没有问题,否则我会调整它。你现在不能卸载RPM。。。假设
/tmp
在同一个分区上/有足够的空间。。。Fedora项目对此有一个完整的文件化和深思熟虑的策略,而您却忽略了它……我同意我不能使用rpm-e卸载,但我可以删除它,我现在似乎没有任何问题。我的最终目标是拥有多个cd_播放器实例,每个实例都有一些不同的属性。我每次都想要一个新的安装,这就是我为什么尝试这个。谢谢。您给出了提示,现在我解决了它。我所做的是默认情况下在/tmp/中安装rpm,然后在%post部分中检查“/opt/cd player”的计数。如果它不止一个,那么我将其移动到/opt as cd-player_2,依此类推。由于我没有符号链接,我没有问题,否则我会调整它。你现在不能卸载RPM。。。假设
/tmp
在同一个分区上/有足够的空间。。。Fedora项目对此有一个完整的文件化和深思熟虑的策略,而您却忽略了它……我同意我不能使用rpm-e卸载,但我可以删除它,我现在似乎没有任何问题。我的最终目标是拥有多个cd_播放器实例,每个实例都有一些不同的属性。我每次都想要一个新的安装,这就是为什么我尝试这个。