这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 dh,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
dh - debhelper 命令序列器
概要
dh 序列 [- 和 插件[,插件 ...]] [- 列表[debhelper 选项]
商品描述
dh 运行一系列 debhelper 命令。 支持的 序列s 对应于
目标 Debian/规则 文件: 建筑拱门, 独立构建, 建立, 清洁, 安装无关,
安装-arch, 安装, 二元架构, 二进制独立及 二进制.
超越 目标
A Debian/规则 文件使用 dh 可以覆盖在任何步骤中运行的命令
序列,通过定义覆盖目标。
覆盖 dh_命令, 添加一个名为的目标 覆盖_dh_命令 到规则文件。 当它
通常会运行 dh_命令, dh 将改为调用该目标。 覆盖目标可以
然后运行带有附加选项的命令,或者运行完全不同的命令。
请参阅下面的示例。
也可以将覆盖目标定义为仅在构建依赖于架构或
架构独立包。 使用名称如下的目标 覆盖_dh_命令-拱
和 覆盖_dh_命令-独立. (请注意,要使用此功能,您应该 Build-Depend on
debhelper 8.9.7 或更高版本。)
配置
- 和 插件[,插件 ...]
将给定插件指定的 debhelper 命令添加到
运行的命令序列。 此选项可以重复多次,或
可以列出多个插件,用逗号分隔。 当有一个
提供 debhelper 命令的第三方软件包。 见 编程 文件
关于序列插件接口的文档。
- 没有 插件
的逆 - 和, 禁用使用给定的插件。 这个选项可以重复
不止一次,或者可以列出多个要禁用的插件,用逗号分隔。
- 列表, -l
列出所有可用的插件。
--不作为
打印将为给定序列运行但不运行它们的命令。
请注意, dh 通常会跳过它知道不会执行任何操作的运行命令。 和
--no-act,打印序列中命令的完整列表。
其他选项传递给 dh 传递给它运行的每个命令。 这可以用来设置
一个选项,如 -v or -X or -N,以及更专业的选项。
示例
要查看序列中包含哪些命令,而不实际执行任何操作:
dh 二进制架构 --no-act
这是一个非常简单的规则文件,用于默认命令序列的包
无需其他选项即可工作。
#!/usr/bin/制作 -f
%:
呃$@
通常,您希望将选项传递给特定的 debhelper 命令。 最简单的方法
with 是通过为该命令添加覆盖目标。
#!/usr/bin/制作 -f
%:
呃$@
override_dh_strip:
dh_strip -Xfoo
override_dh_auto_configure:
dh_auto_configure -- --with-foo --disable-bar
有时自动 dh_自动配置(1)和 dh_自动构建(1) 猜不到要做什么
对于一个奇怪的包裹。 以下是如何避免运行,而是运行自己的
命令。
#!/usr/bin/制作 -f
%:
呃$@
override_dh_auto_configure:
./mondoconfig
override_dh_auto_build:
让宇宙在欢乐中爆炸
另一个常见的情况是想要在特定的之前或之后手动执行某些操作
运行 debhelper 命令。
#!/usr/bin/制作 -f
%:
呃$@
override_dh_fixperms:
dh_fixperms
chmod 4755 debian/foo/usr/bin/foo
如果您的包裹使用 autotools 并且您想焕然一新 配置文件 和 配置猜测
较新的版本来自 自动工具开发 在构建时打包,您可以使用一些命令
提供于 自动工具开发 让它自动化,就像这样。
#!/usr/bin/制作 -f
%:
dh $@ -- 使用 autotools_dev
由于该区域的不断变化,默认情况下 Python 工具不由 dh 运行。
(在兼容级别 v9 之前,dh 确实运行 dh_py支持.) 这里是如何使用 dh_python2.
#!/usr/bin/制作 -f
%:
dh $@ -- 与 python2
这是强制使用 Perl 的方法 模块::构建 构建系统,这可能是必要的
debhelper 错误地检测到包使用了 MakeMaker。
#!/usr/bin/制作 -f
%:
dh $@ --buildsystem=perl_build
这是覆盖其中的示例 dh_自动_* 命令查找包的来源,
对于源位于子目录中的包。
#!/usr/bin/制作 -f
%:
dh $@ --sourcedirectory=src
这是一个如何告诉 dh_自动_* 在子目录中构建的命令,
这将被删除 清洁.
#!/usr/bin/制作 -f
%:
dh $@ --builddirectory=构建
如果您的包可以并行构建,请使用 compat 10 或通过 - 平行线
到 dh。 然后 dpkg-构建包 -j 将工作。
#!/usr/bin/制作 -f
%:
dh $@ -- 并行
如果您的包在使用多线程时无法可靠构建,请通过
--无平行 到 dh(或相关的 dh_自动_* 命令):
#!/usr/bin/制作 -f
%:
dh $@ --无并行
这里有一个方法可以防止 dh 从运行几个你不希望它运行的命令,
通过为每个命令定义空覆盖目标。
#!/usr/bin/制作 -f
%:
呃$@
# 不运行的命令:
override_dh_auto_test override_dh_compress override_dh_fixperms:
一个单独的文档包的漫长构建过程可以使用
架构独立覆盖。 运行 build-arch 和
二元拱序列。
#!/usr/bin/制作 -f
%:
呃$@
override_dh_auto_build-indep:
$(MAKE) -C 文档
# 文档不需要测试
override_dh_auto_test-indep:
override_dh_auto_install-indep:
$(MAKE) -C 文档安装
添加到上面的示例中,假设您需要 chmod 一个文件,但仅在构建
依赖于体系结构的包,因为它在仅构建文档时不存在。
override_dh_fixperms-arch:
dh_fixperms
chmod 4755 debian/foo/usr/bin/foo
内部人员
如果你好奇 dh的内部结构,这是它在引擎盖下的工作原理。
每个 debhelper 命令都会记录它何时成功运行
debian/package.debhelper.log. (哪一个 dh_clean 删除。)所以 dh 可以告诉哪些命令有
已经运行,对于哪些包,并跳过再次运行这些命令。
每一次 dh 运行,它检查日志,并找到最后记录的命令
指定的顺序。 然后继续执行序列中的下一个命令。 这 - 直到,
- 前, - 后及 - 其余的 选项可以覆盖此行为。
序列也可以在 debian/rules 中运行相关目标。 例如,“二进制”
序列运行“安装”目标。
dh 使用 DH_INTERNAL_OPTIONS 传递信息的环境变量
在覆盖目标内运行的 debhelper 命令。 内容(实际上,
存在)这个环境变量,顾名思义,可能会发生变化
在任何时间。
中的命令 独立构建, 安装无关 和 二进制独立 序列通过 -i
选项以确保它们仅适用于与体系结构无关的包和命令
建筑拱门, 安装-arch 和 二元架构 序列通过 -a 选择以确保他们
仅适用于架构相关的包。
弃用 配置
以下选项已弃用。 改用覆盖目标要好得多。
他们是 不能 在兼容 10 中可用。
- 直到 CMD
按顺序运行命令,直到并包括 CMD,然后停止。
- 前 CMD
按之前的顺序运行命令 CMD,然后停止。
- 后 CMD
按照后面的顺序运行命令 CMD.
- 其余的
运行序列中尚未运行的所有命令。
在上述选项中, CMD 可以是 debhelper 命令的全名,也可以是子字符串。 它会
首先在序列中搜索与名称完全匹配的命令,以避免任何
歧义。 如果有多个子串匹配,则序列中的最后一个将是
用过的。
使用 onworks.net 服务在线使用 dh