将额外的文件添加到 rpm 构建过程中

erb*_*dex 4 compilation rpm rpmbuild rpm-spec

我有一个支持添加 python 插件的应用程序的源代码。我已经编写了一个 python 脚本,并且想要构建一个默认包含我的脚本的自定义 rpm。这样我就不必在 rpm 安装后额外添加它。

据我了解,这有两个部分-

  1. 将文件添加到源代码中。
  2. 在文件中列出该文件.spec

我如何知道将文件放在源中的何处?如何指定要复制脚本的路径?规格文件包含如下文本:

%if %{with_python}
%files python
%{_mandir}/man5/collectd-python*
%{_libdir}/%{name}/python.so

//Something like this?

// %{_libdir}/%{name}/gearman.py 
// %{_libdir}/%{name}/redis.py
%endif
Run Code Online (Sandbox Code Playgroud)

小智 5

您需要知道将脚本文件放置在目标安装上的位置(例如 /usr/lib/myApp/plugins/myNiceScript.py)

在规范文件(%install 部分)中,您必须将 %{buildroot} 下的脚本复制到目标目录(必须首先创建该目录)。

%install
...
# in case the dir does not exist:
mkdir -p %{buildroot}/usr/lib/myApp/plugins

cp whereitis/myNiceScript.py   %{buildroot}/usr/lib/myApp/plugins
Run Code Online (Sandbox Code Playgroud)

最后,您必须在 %files 部分定义文件标志。例如,如果您的文件在 root 下必须有 644:

%files
...
%defattr(644,root,root)
/usr/lib/myApp/plugins/myNiceScript.py
Run Code Online (Sandbox Code Playgroud)

如果要在安装过程中创建插件目录,您还需要定义这些标志:

%defattr(755,root,root)
%dir /usr/lib/myApp/plugins
Run Code Online (Sandbox Code Playgroud)