debian/rules 創(chuàng)建 deb 包

每一個(gè) rules 文件,就像其他的 Makefile 一樣,包含著若干條 rules,其中每一個(gè)都定義了一個(gè) target 以及其具體操作。 一個(gè)新的 rule 以自己的 target 聲明開(kāi)頭,后續(xù)的行都以 TAB 開(kāi)頭,以指示 target 的具體行為。

當(dāng)你想要執(zhí)行一個(gè) rule 的時(shí)候,就將 target 名稱作為命令行參數(shù)來(lái)調(diào)用。比如說(shuō),debian/rules clean binary 會(huì)執(zhí)行 clean 和 binary 兩個(gè) target。

以下是對(duì)各 target 的簡(jiǎn)單解釋:

  • clean(必需):清理所有編譯的、生成的文件或編譯樹(shù)中無(wú)用的文件。
  • build(必需):在編譯樹(shù)中將代碼編譯為程序并生成格式化的文檔。
  • build-arch(必需):在編譯樹(shù)中將代碼編譯為依賴于體系結(jié)構(gòu)的程序。
  • build-indep(必需):在編譯樹(shù)中將代碼編譯為獨(dú)立于平臺(tái)的格式化文檔。
  • install(可選):把文件安裝到 debian 目錄內(nèi)為各個(gè)二進(jìn)制包構(gòu)建的文件樹(shù)。如果有定義,那么 binary* target 會(huì)依賴于此 target。(可選)
  • binary(必需):創(chuàng)建所有二進(jìn)制包(是 binary-archbinary-indep 的合并)。
  • binary-arch(必需):在父目錄中創(chuàng)建平臺(tái)依賴(Architecture: any)的二進(jìn)制包。
  • binary-indep(必需):在父目錄中創(chuàng)建平臺(tái)獨(dú)立(Architecture: all)的二進(jìn)制包。
  • get-orig-source(可選):從上游站點(diǎn)獲得最新的原始源代碼包。

其中:

  • debian/rules clean 運(yùn)行了 dh clean,其實(shí)際執(zhí)行的命令為:
    • dh_testdir
    • dh_auto_clean
    • dh_clean
  • debian/rules build 運(yùn)行了 dh build,其實(shí)際執(zhí)行的命令為:
    • dh_testdir
    • dh_auto_configure
    • dh_auto_build
    • dh_auto_test
  • fakeroot debian/rules binary 執(zhí)行了 fakeroot dh binary,其實(shí)際執(zhí)行的命令為:
    • 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 執(zhí)行了 fakeroot dh binary-arch。
  • fakeroot debian/rules binary-indep 執(zhí)行了 fakeroot dh binary-indep,這會(huì)運(yùn)行幾乎和 fakeroot dh binary 一樣的命令,但 dh_strip、dh_makeshlibsdh_shlibdeps 除外,其他命令則均附加 -i 選項(xiàng)。

假設(shè)上游存在一個(gè) Makefile 的環(huán)境,dh_auto_build 會(huì)使用 make 命令執(zhí)行 Makefile 中的第一個(gè) target。

參考文獻(xiàn):
[1] debian 目錄中的必須內(nèi)容
[2] 使用fakeroot模擬root權(quán)限執(zhí)行程序

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容