2012-09-11 122 views
1

我使用「dh_make --native」對一些源進行了debian化。控制文件規定了三個包:debian/postinst如何知道正在安裝哪個軟件包?

blahd 
libblahd1 
libblahd1-dev 

現在blahdinit.d腳本,而這被放在/etc/init.d一旦包建造和安裝,它不會啓用。所以我覺得需要把這樣的:存在於Debian /的postinst

insserv blahd 

。但是我怎樣才能在debian/postinst中看到是安裝的是blahd還是libblahd1libblahd1-dev

+4

它不是每個二進制包創建一個postinst?因此,使用'debian/libblahd1.postinst'和'debian/libblahd1-dev.postinst'來創建兩個不同的腳本,或者從模板中生成這些腳本。 – tripleee

+1

不要直接在包中調用'insserv',而應該使用'invoke-rc.d';請參閱http://www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit和http://www.debian.org/doc/manuals/maint-guide/dother.en.html #initd –

+0

感謝tripleee你回答了我問的問題。然而,在閱讀barti_ddu提供的第二個鏈接後,我意識到我提出了錯誤的問題。我應該說:你如何添加一個init腳本並指定它應該添加到哪個包。我現在知道答案是命名文件debian/ .init。如果你這樣做,dpkg-buildpackage會自動爲你創建一個postinst。乾杯。 –

回答

1

答案被barti_ddu在評論給出:

如果您的Debian /控制文件指定多個包,您可以提供多種的init.d文件,並指定每個是通過命名並於Debian/<package1>哪個包。 init,debian/<package2> .init等。

謝謝。