【发布时间】:2015-04-12 21:53:57
【问题描述】:
我有一个 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-播放器/”。如果我们再运行一个,那么它应该创建“/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 之前创建一个目录?
【问题讨论】: