2015-09-22 23 views
1

我從林田警告和一個錯誤:Debian的林田警告有關非現有的ConfFile

W: openrobertalab: init.d-script-not-marked-as-conffile etc/init.d/openrobertalab 
E: openrobertalab: init.d-script-not-included-in-package etc/init.d/openrobertalab 

我不明白這裏是沒有這樣的文件etc/init.d/openrobertalab在我的包:

dpkg --contents openrobertalab_1.3.0-1_amd64.deb | grep etc 
drwxr-xr-x root/root   0 2015-09-22 10:53 ./etc/ 
drwxr-xr-x root/root   0 2015-09-22 10:53 ./etc/dbus-1/ 
drwxr-xr-x root/root   0 2015-09-22 10:53 ./etc/dbus-1/system.d/ 
-rw-r--r-- root/root  489 2015-09-22 10:53 ./etc/dbus-1/system.d/openrobertalab.conf 

如果我按照lintiants建議,並創建一個debian/openrobertalab.conffiles上市這個不存在的文件,包構建失敗:

dpkg-deb: error: conffile `etc/init.d/openrobertalab' does not appear in package 
dh_builddeb: dpkg-deb --build debian/openrobertalab .. returned exit code 2 
make: *** [binary] Error 1 
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 

任何想法?

+0

我猜它存在於構建的'etc'目錄中,但不知道哪個精確路徑以及構建過程的哪個階段。我猜你需要增加'debian/rules'才能將它包含在包中。 – tripleee

+0

我搜索了軟件包的臨時目錄,根本沒有etc/init.d:/ – ensonic

+0

爲了解決問題的正確方法,我們需要查看更多的代碼;例如'debian /'的內容(或者是包裝回購的鏈接) –

回答

1

我設法「修復」這通過添加以下行到我的規則文件:

override_dh_installinit: 
# don't do anything, silences lintian warnings 
+0

而不是你想遷就想找出爲什麼'dh_installinit'想要首先安裝腳本的原因。 –

1

首先,請聯繫什麼實際的林田的錯誤指的是文檔:

lintian-info --tags \ 
     init.d-script-not-included-in-package \ 
     init.d-script-not-marked-as-conffile 

的第一個警告的解釋表明,您的軟件包的腳本postinst會安裝一個init腳本,但它不是軟件包的一部分。

所以正確的解決方案將是修復你的包的維護者腳本。

+0

當然,當我搜索錯誤時,我得到如下頁面:https://lintian.debian.org/tags/init.d-script-not-included-in-package.html,這些都是超級無益的。我還沒有發現任何對lintian文檔(https://lintian.debian.org/manual/index.html)中的檢查有幫助的東西。 感謝您指出'lintian-info --tags',它超出了我爲什麼該工具不包括在輸出中:/ – ensonic

+0

但是要評論您的結論,我的postinst腳本不會安裝任何內容(https:// gist.github.com/ensonic/14f5f3d2bceb90de5e07) – ensonic

+0

假設這是手動維護的debian/postinst腳本,那麼實際的postinst腳本是怎麼樣的(在dh添加了東西之後)? –