override_dh_auto_install 在反编译过程中不运行

5 debian makefile package

我正在尝试按照本指南创建 Debian 软件包。我的makefile是这样的:

prefix = /usr/local
includedir = $(prefix)/include

install:
    cp -r ./Include/* $(DESTDIR)$(includedir)

uninstall:
    rm -rf $(DESTDIR)$(includedir)/ftz/Console
Run Code Online (Sandbox Code Playgroud)

我的debian/rules是这个:

#!/usr/bin/make -f

%:
    dh $@

override_dh_auto_install:
    $(MAKE) DESTDIR=$$(pwd)/debian/libftzconsole prefix=/usr install
Run Code Online (Sandbox Code Playgroud)

我正在运行debuild -us -uc,我的构建日志是这样的:

 dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: info: source package libftzconsole
dpkg-buildpackage: info: source version 2016.06.03-1
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by FaTony <fatony@fatony.net>
 dpkg-source --before-build fTzConsole
dpkg-buildpackage: info: host architecture amd64
 fakeroot debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
   dh_clean
 dpkg-source -b fTzConsole
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building libftzconsole using existing ./libftzconsole_2016.06.03.orig.tar.gz
dpkg-source: info: building libftzconsole in libftzconsole_2016.06.03-1.debian.tar.xz
dpkg-source: info: building libftzconsole in libftzconsole_2016.06.03-1.dsc
 debian/rules build
dh build
   dh_testdir
   dh_update_autotools_config
   dh_auto_configure
   dh_auto_build
    make -j1
make[1]: Entering directory '/home/fatony/Stuff/C++/fTzConsole'
cp -r -i ./Include/* /usr/local/include
cp: './Include/ftz/Console' and '/usr/local/include/ftz/Console' are the same file
Makefile:5: recipe for target 'install' failed
make[1]: *** [install] Error 1
make[1]: Leaving directory '/home/fatony/Stuff/C++/fTzConsole'
dh_auto_build: make -j1 returned exit code 2
debian/rules:4: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
Run Code Online (Sandbox Code Playgroud)

它看起来override_dh_auto_install没有运行,它尝试将软件包直接安装到我的系统。cp 错误是因为我对目录进行了符号链接。

我不知道如何解决它。帮助?

小智 3

好的,所以debuild调用dh build哪个调用dh_auto_build哪个调用make -j1哪个选择第一个目标,即install

当我添加后

all:
Run Code Online (Sandbox Code Playgroud)

之前installmakefile,问题就解决了。