首先,如果你不理解debian/rules文件,可以先查看一下《Not Your Grandpa’s Debhelper》 一、建立环境(设置环境变量) 二、检查依赖和冲突 三、用-T选择一个目标,或调用fakeroot debian/rules clean 清除生成树。 四、调用dpkg-source产生源码包(如用-b,产生二进制包) 五、调用debian/rules build,然后fakeroot debian/rules binary-target 六、使用gpg标记.dsc文件 七、调用dpkg-genchanges生成一个.changes文件 八、gpg标记.changes文件 九、如使用-tc,再次调用fakeroot debian/rules clean 详细过程: 一、建立环境 设置环境变量。 二、检查依赖和冲突 检查包名、版本号、体系结构等。 三、用-T选择一个目标,或调用fakeroot debian/rules clean 清除生成树 调用debian/rules中的dh clean。 dh clean 执行的动作是 dh_testdir,测试正确的建包目录,看debian/control等目录是否已经存在。 dh_auto_clean,调用Makefile中clean目标。 dh_clean,对包进行清理,它与dh_auto_clean不同,不会调用Makefile文件。 这样,清理工作就结束了。 四、调用dpkg-source产生源码包(如用-b,产生二进制包) 五、调用debian/rules build 调用debian/rules中dh build。 dh build 执行的动作是 dh_testdir,再次测试正确的建包目录,看debian/control等目录是否已经存在。 dh_auto_configure,在建包前进行配置,一般它会寻找用户目录下的configure脚本并进行调用。 dh_auto_build,用于建包,相当于make,使用Makefile建立相应的文件。 dh_auto_test,自动运行Makefile中的test或check目标项。 六、调用fakeroot debian/rules binary-target(如果使用-S,只建立源文件,将不执行这一项) 这里的binary-target是binary、binary-target、binary-indep,binary是默认的,这里使用默认设置来讲。 调用debian/rules中dh binary。 dh binary执行的动作是 dh_testroot,确保包是由root建立的,当然你可以使用fakeroot工具。 dh_prep,当建立二进制包时,先对建包目录(这里是debian)、debian/tmp等进行清理。 dh_installdirs,在建包目录下创建子目录。 dh_auto_install,自动运行Makefile中的make install,默认安装在debian/<package>下面。 dh_install,把文件安装在建包目录下,这里有两种用法,只有一两个文件时,用dh_install把这一两个文件移到建包目录的相应位置;当有多个二进制文件时,先运行上游文件包的Makefile文件,再把生成的文件移入到建包目录下。 dh_installdocs,安装文档到建包目录的usr/share/doc/<package> dh_installchangelogs,安装changelogs文件到建包目录的usr/share/doc/<package>下 dh_installexamples,在建包目录下增加example文件。 dh_md5sums,生成md5sums文件,其中包含每个文件的md5sums。 dh_builddeb,建立debian二进制包。 七、使用gpg标记.dsc文件 当然,如果有的话。 八、调用dpkg-genchanges生成一个.changes文件 生成<package>.changes。 九、gpg标记.changes文件 这里的gpg是你提前设定的,在debian/control文件中可以看到。 十、如使用-tc,再次调用fakeroot debian/rules clean dh clean,与第三步相似,用于清理。 (yuyin86) |