无需 configure 脚本即可创建 Debian 软件包

无需 configure 脚本即可创建 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 [email protected] -f ../proj-1.0.0+svn02042014.tar.gz
dpkg-buildpackage -rfakeroot

运行时dpkg --contents proj_1.0.0+svn02042014-1_amd64.deb我可以清楚地看到二进制文件不在包中。包中只有一些 doc 文件(即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_builddh_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

它可能需要一些修改,但基本思想是从中调用你的 Makefiledebian/rules并在其中安装二进制文件/usr/bin

笔记

  • cd和命令之前的空格dh是制表符,不要替换它们。
  • 用你的二进制名称替换proj_bin(我假设只有一个)

相关内容