我想创建一个执行以下操作的rpm包:
设置时:
将脚本复制到rpm
将文件解压缩到rpm
运行时:
运行script.sh
运行install
文件,该文件已提取到rpm
当用户运行rpm时,应该执行2和3,因为rpm中已经存在文件。
我知道如何进行设置,*。spec文件为:
%description
# lets skip this for now
%prep
# lets skip this for now
%build
# lets skip this for now
%install
cd ${RPM_BUILD_ROOT}
cp -v /home/methuselah/script.sh ${RPM_BUILD_ROOT}
tar xvpf /home/methuselah/bin.tar
chmod 775 -R ${RPM_BUILD_ROOT}/*
%files
/*
%changelog
* Tue Jan 28 2014 Pavel Šimerda - 3.0.9-14
- Resolves: #1052814 - rsync command is terminated with SIGSEGV
- Resolves: #1052814 - add missing patch file
我不确定执行rpm时要运行的实际安装步骤在哪里。你能帮忙吗?
答案 0 :(得分:3)
%install
部分用于安装文件。在目标计算机上的安装过程中不会运行此部分。这是spec
文件中令人困惑的部分。
在rpm
的构建过程中(按此顺序):
在安装rpm
期间(按此顺序):
%files
节中的文件)注意:this page on the full rpm scripts order
更多说明:
rpm
不能拥有相同的文件/文件夹,因此请确保您不打包/home
,/usr
或类似的东西(在下面指定/*
时) %files
您正在打包整个树)/home
目录中。软件包是在系统范围内安装的,因此只能对通用目录中的文件进行打包,例如/etc
,/usr
,... 答案 1 :(得分:1)