检查目标机器上是否存在 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.
我有一个 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.