erb*_*dex 4 compilation rpm rpmbuild rpm-spec
我有一个支持添加 python 插件的应用程序的源代码。我已经编写了一个 python 脚本,并且想要构建一个默认包含我的脚本的自定义 rpm。这样我就不必在 rpm 安装后额外添加它。
据我了解,这有两个部分-
.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)