Я пытаюсь упаковать свое приложение для Ubuntu с помощью PPA. Сборка перестала работать, потому что она не может найти Python.h
(создайте журнал здесь). Этой библиотекой предоставляют libpython2.7-dev
и у меня есть он в зависимостях от сборки, и согласно журналу сборки это установлено.
Создание использования dpkg-buildpackage
(или просто простое использование установки make
и make install
) работы над моей текущей Ubuntu 14.10 чистят установку.
Вы сделали немного ошибки в Вашем debian/control
файл, где Вы предположили, что python2.7 пакет обеспечивает интерпретатор. /usr/bin/python
на самом деле обеспечивается python-minimal
.
Вот почему следующие строки в Вашем Make-файл не работают как ожидалось в среде сборки:
PYVER := $(shell python -c "import sys; print sys.version[0:3]")
CFLAGS := -g -I/usr/include/python$(PYVER) -Wall -Werror -fPIC $(OPTFLAGS) -fno-strict-aliasing
PYVER
пусто как эти python
, команда не установлена в ppa sbuild.
Для решения проблемы сборки просто используйте следующий debian/control
файл:
Source: python-pyblock
Section: python
Priority: optional
Maintainer: Vojtěch Trefný <vtrefny@redhat.com>
X-Python-Version: >= 2.7
Build-Depends: debhelper (>= 9), python-all-dev, gettext, libdevmapper-dev, libdmraid-dev
Standards-Version: 3.9.5
Homepage: https://git.fedorahosted.org/cgit/pyblock.git/
Package: python-pyblock
Architecture: any
Depends: python2.7, python-selinux, python-parted, ${shlibs:Depends}, ${misc:Depends}
Description: Python modules for dealing with block devices
The pyblock contains Python modules for dealing with block devices.
Примечание, которое я только добавил python-all-dev
как зависимость от сборки (оно зависит и от интерпретатора и от -dev
пакеты)
Это - чистое предположение, но Ваша команда компиляции:
gcc -g -I/usr/include/python -Wall -Werror -fPIC -fno-strict-aliasing -DUSESELINUX=1 -c -o dm.o dm.c
Однако libpython2.7-dev
файлы установки в /usr/include/python2.7
, согласно список файлов .
, Возможно, необходимо рассмотреть различные флаги компиляции. Могло бы быть что-то в Вашей конфигурации системы, которая позволяет ему использовать заголовки в /usr/include/python2.7
, даже при том, что Вы включаете различный каталог.