Создание пакета debian без скрипта настройки

Я пытался упаковать проект с внутренним кодом, но у меня возникли проблемы. Я могу создать пакет, но фактические двоичные файлы не устанавливаются при запуске

sudo dpkg -i proj_1.0.0+svn02042014-1_amd64.deb

Я ожидаю, что это потому, что в проекте нет сценария 'configure' и нет ссылки на $DESTDIR. Вместо этого при запуске make install он просто вызывает Perl-скрипт, который развертывает файлы в каталог, указанный на терминале.

Чтобы создать пакет Debian, я делал следующее:

tar -pczf proj-1.0.0+svn02042014.tar.gz proj-1.0.0+svn02042014/
dh_make -e blah@blah.com -f ../proj-1.0.0+svn02042014.tar.gz
dpkg-buildpackage -rfakeroot

При беге dpkg --contents proj_1.0.0+svn02042014-1_amd64.deb Я ясно вижу, что двоичные файлы не входят в пакет. Единственное, что там есть, это некоторые документы (т.е. doc\README)

Я предполагаю, что используя dpkg-buildpackage без configure сценарий не возможен? Это тот случай?

Спасибо за внимание

Редактировать:
proj-1.0.0 + svn02042014.tar.gz выглядит примерно так:

proj-1.0.0+svn02042014/  
--Makefile  
--src/  
----install.pl  
----Makefile  
----blah.cpp

1 ответ

Отредактируйте свой debian/rules включить переопределение dh_auto_build а также dh_auto_install:

#!/usr/bin/make -f

%:
    dh "$@"

override_dh_auto_build:
    cd $(CURDIR) && make

override_dh_auto_install:
    cd $(CURDIR) && make install
    cd $(CURDIR) && cp ./proj_bin debian/proj/usr/bin
    dh_install

Это может потребовать некоторых модификаций, но основная идея - вызвать ваш Makefile из debian/rules и установите бинарный файл в /usr/bin,

Примечание:

  • пробелы перед cd а также dh Команды - это вкладки, не заменяйте их.
  • замещать proj_bin по вашему двоичному имени (я предполагал только одно)
Другие вопросы по тегам