在不编译源文件的情况下构建rpm

时间:2016-11-25 09:51:36

标签: rpm rpmbuild rpm-spec

我正在尝试使用单个文件的示例rpm包。

在我的源文件夹中,我有python_test_rpm.tar.gz,它只包含一个python脚本文件。但是,该文件不是有效的python脚本。

我想要做的就是打包并将其部署在特定的文件夹中。执行rpm build命令时,它会在python脚本中显示编译/语法错误。如何跳过此验证并进行构建。

  

rpmbuild命令   rpmbuild -v -bb

     

规范文件:

     

名称:python_test_rpm

     

版本:1

     

发布:1

     

摘要:Linux Installer的示例RPM

     

集团:开发/工具

     

许可证:GPL

     

网址:无

     

资料来源:python_test_rpm.tar.gz

     

BuildRoot:/ home / rpmdev / rpmbuild

     

%description

     

Linux RPM安装程序的POC包

     

%准备

     

%setup -n“python_test_rpm”

     

%install

     

rm -rf“$ RPM_BUILD_ROOT”

     

mkdir -p“$ RPM_BUILD_ROOT / python_test_rpm”

     

cp -R _mock_backport.py“$ RPM_BUILD_ROOT / python_test_rpm”

     

%files

     

/python_test_rpm/_mock_backport.py

     

错误消息:   编译   /home/rpmdev/rpmbuild/BUILDROOT/python_test_rpm-1-1.x86_64/python_test_rpm/_mock_backport.py   ... SyntaxError:函数中不允许使用非限定exec   '_set_signature'它包含一个带有自由变量的嵌套函数   (_mock_backport.py,第191行)

     

错误:/var/tmp/rpm-tmp.4gSvIa(%install)退出状态不佳

     

RPM构建错误:       来自/var/tmp/rpm-tmp.4gSvIa(%install)

的退出状态不佳

1 个答案:

答案 0 :(得分:5)

简单的解决方法:添加"退出0'在%install结束时将禁用正在尝试生成%.pyo /%。pyc文件的构建根策略脚本。

更好的修复包括覆盖正在编译python文件的特定构建根策略脚本,或者只是修复/注释不编译的代码。