没有构建工具的 Debian 打包

Debian Packaging Without Build Tool

我想从 C 程序创建 Debian 软件包,而不使用 autotools 或 CMake 等构建工具。我的 debian/rules 文件:

#!/usr/bin/make -f

%:
    dh $@

override_dh_auto_clean:
    rm -f program

override_dh_auto_build:
    gcc program.c -o program

override_dh_auto_install:
    cp program /usr/local/bin

在 运行 dpkg-buildpackage 之后,我得到: dh: error: Unknown sequence application (choose from: binary binary-arch binary-indep build build-arch build-indep clean install install-arch install-indep)

问题似乎与我在扩展 $@ 的 shell 脚本 heredoc 中创建文件有关,例如

cat <<EOF > debian/rules.temp
#!/usr/bin/make -f

%:
    dh $@
EOF

应该是:

all_symbol='$@'
cat <<EOF > debian/rules.temp
#!/usr/bin/make -f

%:
    dh $all_symbol
EOF

一个不相关的问题是 override_dh_auto_install 要手动创建 Debian 文件层次结构的位置,它应该是:

override_dh_auto_install:
    mkdir -p debian/PACKAGENAME/usr/bin 
    cp program debian/PACKAGENAME/usr/bin

或者,自动完成此操作:

cat <<EOF > debian/PACKAGENAME.install
program usr/bin
EOF