2016-11-25 121 views
1

我正在尝试使用单个文件的示例rpm包。编译rpm而不编译源文件

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

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

rpmbuild command rpmbuild -v -bb

Spec File:

Name: python_test_rpm

Version: 1

Release: 1

Summary: Sample RPM for Linux Installer

Group: Development/Tools

License: GPL

URL: None

Source: python_test_rpm.tar.gz

BuildRoot: /home/rpmdev/rpmbuild

%description

POC package for Linux RPM installer

%prep

%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

Error Message: Compiling /home/rpmdev/rpmbuild/BUILDROOT/python_test_rpm-1-1.x86_64/python_test_rpm/_mock_backport.py ... SyntaxError: unqualified exec is not allowed in function '_set_signature' it contains a nested function with free variables (_mock_backport.py, line 191)

error: Bad exit status from /var/tmp/rpm-tmp.4gSvIa (%install)

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.4gSvIa (%install)

回答

3

最简单的解决办法:。加上“退出0' 在%安装结束时将禁止那些试图生成%.pyo /%构建根策略脚本文件PYC

更好的修复包括压倒一切编译python文件的特定生成根策略脚本,或者简单地修复/注释不编译的代码。

+0

谢谢Jeff。exit 0适合我 – baskar