在 Fedora 35 上从 .spec 文件构建 RPM 时如何选择 Python 版本?
CentOS/RHEL 文档说
在 SPEC 文件的 BuildRequires 中将特定的 Python 3 版本配置为
、python36-rpm-macros
或python38-rpm-macros
。python39-rpm-macros
Fedora 只有
python3.9
包和 python3-rpm-macros
包。
如何设置Python版本?如何使此选择在 Fedora、RHEL 和其他企业 Linux 风格之间可移植?
%define __python3 /usr/bin/python3.9
%{?fedora:BuildRequires: python3.9}
%{?rhel:BuildRequires: python39-devel}
这是正确的吗?
%global python_minimum_version 3.9.0
%{?fedora:Requires: python3 >= %{python_minimum_version}}
%{?rhel:Requires: python39 >= %{python_minimum_version}}
%{?fedora:BuildRequires: python3-devel >= %{python_minimum_version}}
# yes, I do crazy things in the rpm build, and I need pip
%{?fedora:BuildRequires: python3-pip}
# without wheel the installed files lack `python_qpid_proton-0.37.0.dist-info`
%{?fedora:BuildRequires: python3-wheel}
%{?rhel:BuildRequires: python39-devel >= %{python_minimum_version}}
%{?rhel:BuildRequires: python39-pip}
%{?rhel:BuildRequires: python39-wheel}
%{?rhel:BuildRequires: python39-rpm-macros}
这似乎生成了一个在 Fedora 和 CentOS Stream 8 上都表现良好的软件包。
在 Fedora 上,使用最新的 Python,在 CentOS 上我使用 Python 3.9,并且脚本中的
#!
行被重写以自动使用 Python 3.9。
我认为这是成功的。