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

时间:2013-12-09 11:43:48

标签: compilation rpm rpmbuild rpm-spec

我有一个支持添加python插件的应用程序的源代码。我编写了一个python脚本,并希望构建一个自定义rpm,默认包含我的脚本。所以我不必在rpm安装后另外添加它。

据我所知,现在有两个部分 -

  1. 将文件添加到源代码中。
  2. .spec文件中列出该文件。
  3. 我如何知道将文件放在源中的位置?如何指定我希望复制脚本的路径? 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
    

1 个答案:

答案 0 :(得分:4)

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

在spec-File(部分%安装)中,您必须将%{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

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

%files
...
%defattr(644,root,root)
/usr/lib/myApp/plugins/myNiceScript.py

如果要在安装期间创建插件目录,则还需要定义这些标志:

%defattr(755,root,root)
%dir /usr/lib/myApp/plugins