每一个 rules
文件,就像其他的 Makefile
一样,包含着若干条 rules,其中每一个都定义了一个 target 以及其具体操作。 一个新的 rule 以自己的 target 声明开头,后续的行都以 TAB 开头,以指示 target 的具体行为。
当你想要执行一个 rule 的时候,就将 target 名称作为命令行参数来调用。比如说,debian/rules clean binary
会执行 clean 和 binary 两个 target。
以下是对各 target 的简单解释:
-
clean
(必需):清理所有编译的、生成的文件或编译树中无用的文件。 -
build
(必需):在编译树中将代码编译为程序并生成格式化的文档。 -
build-arch
(必需):在编译树中将代码编译为依赖于体系结构的程序。 -
build-indep
(必需):在编译树中将代码编译为独立于平台的格式化文档。 -
install
(可选):把文件安装到debian
目录内为各个二进制包构建的文件树。如果有定义,那么binary*
target 会依赖于此 target。(可选) -
binary
(必需):创建所有二进制包(是binary-arch
和binary-indep
的合并)。 -
binary-arch
(必需):在父目录中创建平台依赖(Architecture: any
)的二进制包。 -
binary-indep
(必需):在父目录中创建平台独立(Architecture: all
)的二进制包。 -
get-orig-source
(可选):从上游站点获得最新的原始源代码包。
其中:
-
debian/rules clean
运行了dh clean
,其实际执行的命令为:- dh_testdir
- dh_auto_clean
- dh_clean
-
debian/rules build
运行了dh build
,其实际执行的命令为:- dh_testdir
- dh_auto_configure
- dh_auto_build
- dh_auto_test
-
fakeroot debian/rules binary
执行了fakeroot dh binary
,其实际执行的命令为:- dh_testroot
- dh_prep
- dh_installdirs
- dh_auto_install
- dh_install
- dh_installdocs
- dh_installchangelogs
- dh_installexamples
- dh_installman
- dh_installcatalogs
- dh_installcron
- dh_installdebconf
- dh_installemacsen
- dh_installifupdown
- dh_installinfo
- dh_installinit
- dh_installmenu
- dh_installmime
- dh_installmodules
- dh_installlogcheck
- dh_installlogrotate
- dh_installpam
- dh_installppp
- dh_installudev
- dh_installwm
- dh_installxfonts
- dh_bugfiles
- dh_lintian
- dh_gconf
- dh_icons
- dh_perl
- dh_usrlocal
- dh_link
- dh_compress
- dh_fixperms
- dh_strip
- dh_makeshlibs
- dh_shlibdeps
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
fakeroot debian/rules binary-arch
执行了fakeroot dh binary-arch
。 -
fakeroot debian/rules binary-indep
执行了fakeroot dh binary-indep
,这会运行几乎和fakeroot dh binary
一样的命令,但dh_strip
、dh_makeshlibs
和dh_shlibdeps
除外,其他命令则均附加-i
选项。
假设上游存在一个 Makefile 的环境,dh_auto_build 会使用 make
命令执行 Makefile 中的第一个 target。
参考文献:
[1] debian 目录中的必须内容
[2] 使用fakeroot模拟root权限执行程序
网友评论