2009-11-30 30 views
2

我有以下的Debian結構:Debian包創建在PREINST必需的目錄

  • 的Debian的/ usr /共享/測試
  • 的Debian的/ usr /共享/測試/檢驗
  • 的Debian的/ usr /共享/測試/檢驗/一個
  • 的Debian的/ usr /共享/測試/檢驗/ b

使用dpkg-DEB --build使用dpkg -i構建軟件包和安裝後,它不似乎會自動創建文件夾測試,如果它們不存在。我是否需要在preinst腳本中手動創建它們?

更新:問題是因爲preinst有一個錯誤,所以拆包沒有得到發生的機會。

洛朗

回答

3

看看我的例子here

debian/DEBIAN 
debian/usr/bin 
debian/usr/lib 

你有兩個選擇:

  1. 填充與文件目錄生成包(二進制包)之前
  2. 構建包凡MAKE會被調用來構建包並安裝它。

在第一種情況下,您不需要通過preinst腳本創建目錄:如果安裝該軟件包時包管理器需要,則會創建文件夾層次結構。

在第二種情況下,你將需要使用mkdir -pinstall階段創建的文件夾層次。


在過去一年我一直在通過3點不同的包裝Debian倉庫的方式,相信我,細節賬戶是多方面的。一個解決辦法是熟悉Launchpad及其PPA發佈流程。

+0

就我而言,它是一個二進制包。我的結構與您的結構相同,但是當我使用dpkg -i時,它不會解壓縮任何文件或文件夾。 – 2009-12-01 01:20:00

+0

大約有8000個源代碼包 - 爲什麼不選擇現有的簡單包並查看它的功能?出於這個原因,我們曾經有一個簡單的'hello'包作爲工作示例。 – 2009-12-01 02:07:34

+0

更新:問題是因爲preinst有錯誤,所以拆包沒有機會發生。 – 2009-12-01 02:28:11

0

你需要那些在指定包或者tmp或相同的debian /控制列出您的第一個軟件包,這取決於您選擇的debhelper的兼容模式的版本。

E.g.從debhelper例如文件中的一個電話:

$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install 

你缺少一個間接層這裏。

+0

望着HOWTO,他們說創建以下文件夾,例如: -p ./debian/usr/bin 然後./debian/DEBIAN/control等等 似乎的mkdir他們不在'debian'之前添加軟件包名稱。 我錯過了什麼嗎? – 2009-12-01 00:05:15

+0

然後HOWTO可能是錯的。你有網址嗎? – 2009-12-01 00:33:20

+0

http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/#AEN88 – 2009-12-01 00:35:16