2013-10-05 70 views
2

我使用的dpkg建設Debian軟件包。如何確保Debian軟件包沒有依賴

該軟件包依賴libvirt,這是不希望的。

規則文件沒有指定這個依賴關係,但它是由dpkg添加的,我想是因爲在構建時調用了libvirt-dev。

但是我的包能正常工作而不libvirt的。因此,libvirt是一個「推薦」包,但不是「必需的」。我如何覆蓋這個依賴關係,並確保它不存在於我的最終deb文件中?

回答

3

很難知道沒有看到你的實際包,但我猜你有一個二進制或共享庫鏈接到libvirt。這將導致dh_shlibdeps包括在${shlibs:Depends} substvar libvirt的。

如果這是你的問題,那麼正確的修復取決於鏈接到libvirt的東西。它應該直截了當地確定;只要運行在ldd你的包每個二進制文件或共享庫的對象,和grep爲「libvirt的」上。

如果與libvirt鏈接的東西只是附帶的包,而不是主要功能的一部分,那麼使用Recommends:確實是正確的。要使dh_shlibdeps從其依賴項掃描中排除該對象,請爲其提供一個-X選項。例如目標debian/rules,假設debhelper7式包裝:

override_dh_shlibdeps: 
     dh_shlibdeps -Xname_of_your_object_to_exclude 

如果鏈接到libvirt的東西(一個或多個)實際上是封裝功能的重要部分,然後將所生成的libvirt的依賴性是適當的。如果你仍然不需要它,你需要在構建過程中解決如何避免與libvirt鏈接的問題。

相關問題