У меня есть приложение на Python, оно может работать на Python> = 2.6 и не зависит от архитектуры.
Мне нужен rpm-пакет этого приложения для установки на Fedora 14 (python 2.7) и Centos 6.2 (python 2.6).
Я сейчас использую mock
создать один пакет rpm для каждого «вкуса», и это хорошо работает. Я, по-видимому, не могу установить скомпилированный пакет Centos на Fedora.
Это дает мне это сообщение об ошибке:
error: Failed dependencies:
python(abi) = 2.6 is needed by myapp-0.9.el6.noarch
Вот соответствующая часть моего файла .spec:
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Name: myapp
Version: #VERSION#
Release: #RELEASE#%{dist}
Summary: myapp
Group: Development/Languages
License: Apache v2
Source0: %{name}-%{version}-#RELEASE#.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: python-devel
BuildRequires: python-setuptools
%description
myapp
%prep
%setup -c
%build
%{__python} setup.py build
%install
%{__rm} -rf %{buildroot}
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
Мне действительно нужно использовать mock
и построить 2 об / мин, или есть другой способ создать один общий пакет 2.x об / мин ?
Файлы Python компилируются в байтах во время сборки, поэтому для их запуска требуется определенная версия Python. Правильный способ - иметь отдельные пакеты, но должна быть возможность написать специальный файл, который устанавливает только .py
исходные файлы и поэтому не требует определенной версии Python. Вам, вероятно, придется обрабатывать размещение файлов во всех /usr/lib/python2.X/site-packages
каталоги, которые вам небезразличны.