2014-04-01 25 views
3

我有許多常用函數,所以我們可以在debian維護者腳本(preinst/postinst/prerm/postrm)中找到它,將其稱爲common.sh。在debian維護者腳本中尋找常用函數

如果我添加 「common.sh」 到debian目錄,dpkg的抱怨:

dpkg-deb: warning: conffile '' is not a plain file 
dpkg-deb: warning: ignoring 1 warning about the control file(s) 

但是,包正確構建。

當我安裝時,很難找到我的common.sh所在的正確目錄。在preinst似乎正在尋找/var/lib/dpkg/tmp.ci,而在postinst似乎尋找/var/lib/dpkg/info

我可以將common.sh粘貼在tmp目錄中,稍後刪除它,但我感覺安裝到操作系統的文件應保持它們的狀態,直到dpkg可以刪除它們。

無論如何,我想知道真正的'debian'這樣做的方式是什麼?

+0

嗯,我想出了第一部分...... conffile不是一個普通的文件,因爲我有一個字節「\ n」。一旦完全清潔,警告就消失了......所以這只是在安裝前後腳本之間具有通用功能的標準方式... – srclosson

回答

1

預編譯從某個實現定義的目錄運行,因爲該包未被解壓縮到文件系統中的適當位置。

我很確定強制額外的文件到DEBIAN部分是不允許的標準包。您可以將common.sh安裝到文件系統中,通常在/ usr/share/yourpackagename /下,並使用postinst和prerm腳本。

它不適用於preinst和postrm,因爲包內容不可用。

+0

謝謝安德烈亞斯。是的,這就是我最終做的。如果我需要這些功能,我會等待postinst。 – srclosson