You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dpkg-buildpackage(debhelper)中获取包名或构建目录的方法咨询

可用的解决方案如下

debhelper 本身提供了多种内置机制获取包名和对应构建目录,不需要硬编码包名:

  1. 使用内置DESTDIR变量(最推荐)
    标准 debhelper 构建流程中,DESTDIR 变量默认就指向当前包的构建目录,也就是你需要的$(CURDIR)/debian/<实际包名>路径,直接替换即可:
override_dh_fixperms:
        dh_fixperms
        chown my-user:my-user $(DESTDIR)/etc/my-config

这种写法完全不需要关心实际包名,后续包名规则变化也不需要修改配置。

  1. 使用内置PACKAGE变量
    debhelper 执行包级别的 override 目标时,会自动注入PACKAGE变量,值为当前构建的二进制包名,可以直接拼接路径:
override_dh_fixperms:
        dh_fixperms
        chown my-user:my-user $(CURDIR)/debian/${PACKAGE}/etc/my-config
  1. 使用dh_listpackages命令动态获取
    如果是更复杂的场景,可以调用dh_listpackages命令直接输出当前构建的所有二进制包名,单包构建场景下直接取输出即可:
override_dh_fixperms:
        dh_fixperms
        chown my-user:my-user $(CURDIR)/debian/$(shell dh_listpackages)/etc/my-config

你之前打印环境变量没有找到对应变量,是因为这类变量是 debhelper 在执行 override 目标的上下文才会注入,全局环境默认不存在。


内容的提问来源于stack exchange,提问作者rookie099

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:15:03