2014-04-20 29 views
3

我有一個包含文件的現有git倉庫,我想在.deb中打包。目前,我的源代碼主要位於一個平面目錄中,並且我有一個構建腳本將相關文件複製到Debian軟件包構建目錄中。例如應該爲源代碼存儲庫進行佈局以匹配.deb構建目錄結構嗎?

myapp.conf 
myexecutable 

運行build.sh後,我得到:

./build/etc/myapp.conf 
./build/usr/bin/myexecutable 

,然後我這個目錄建設成爲我的.deb

但是,我可以通過將我的所有源代碼保存在一個反映.deb構建目錄結構的目錄結構中來裁剪這個中間複製步驟嗎?有什麼缺點?

回答

1

我假設你是有問題軟件的主宰者。

你想要做的是將debian/目錄添加到軟件包的頂層,並在那裏創建Debian軟件包文件。有一個工具(dh_make,來自dh-make包)。

使用dh_make來創建一個「Debian本地包」。在本文中,「Native」意味着軟件的維護者和Debian軟件包的維護者是同一個人(您),而不是您打包別人的軟件。

更改爲源目錄,然後運行dh_make -n,然後在命令行上回答問題。之後,切換到已創建的debian/目錄並編輯各種文件。刪除你不需要的示例文件(很可能你不需要其中的大多數)。

如果您的項目使用make,並且您使用的是標準make目標,那麼在此之後您可能沒有太多工作要做。 Debian工具鏈非常聰明,可以爲您解決問題。

如果您使用Git進行源代碼管理,您應該安裝git-buildpackage並將其用於構建軟件包和發佈。請參閱其文檔。

您的軟件包目錄結構根本不需要更改–只會添加debian/目錄。 Debian軟件包總是由一個「Debian源碼包」(它是該軟件的源碼樹)以及debian/目錄(可能還有補丁,因爲您控制上游源而不適用於您的情況)構建而成。