创建一个可解压缩文件的rpm包

时间:2019-09-30 09:42:29

标签: rpm rpm-spec

我想创建一个执行以下操作的rpm包:

设置时:

  1. 将脚本复制到rpm

  2. 将文件解压缩到rpm

运行时:

  1. 运行script.sh

  2. 运行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时要运行的实际安装步骤在哪里。你能帮忙吗?

2 个答案:

答案 0 :(得分:3)

rpm构建根中的 rpm构建过程中,

%install部分用于安装文件。在目标计算机上的安装过程中不会运行此部分。这是spec文件中令人困惑的部分。

rpm的构建过程中(按此顺序):

  • %prep
  • %build
  • %install
  • %check

在安装rpm期间(按此顺序):

  • %pre
  • (真实安装:已安装%files节中的文件)
  • %post

注意:this page on the full rpm scripts order

更多说明:

  • 两个rpm不能拥有相同的文件/文件夹,因此请确保您不打包/home/usr或类似的东西(在下面指定/*时) %files您正在打包整个树)
  • 请勿将文件打包在用户的/home目录中。软件包是在系统范围内安装的,因此只能对通用目录中的文件进行打包,例如/etc/usr,...

答案 1 :(得分:1)

也许您想将文件(script.sh和bin.tar)放在“%files”部分下,并将所有安装都保留为%install。

看看here,也许还有here以获得更多信息。

  

我不确定执行rpm时要运行的实际安装步骤在哪里。你能帮忙吗?

我认为这个link可以为您提供帮助。