Rpm
rpm 如何解決庫依賴關係?
我嘗試製作一個連結到此類庫的程序包(來自 ldd 的輸出):
libwx_baseu-2.8.so.0 => /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
很簡單,對吧?但是當我製作這個程序的一個包(使用 rpmbuild)然後嘗試安裝它時,rpm 抱怨缺少庫(上面的這個):
錯誤:失敗的依賴項:
libwx_baseu-2.8.so.0()(64bit) libwx_baseu-2.8.so.0(WXU_2.8)(64bit)
我的猜測是,rpmbuild 設置了主 lib 目錄的依賴關係,即 /usr/lib64。
問題——如何解決這個問題(好吧,一個會被強制安裝,但我想避免它)?即如何建構 rpm 以便為 wx-2.8-wxcontainer 子目錄(對於這個庫)設置依賴關係?
openSUSE 11.4,如果這很重要。
編輯
我可以使用強制安裝的 –nodeps 安裝此類軟體包,然後安裝程序完美執行。很明顯,rpm 或 rpmbuild 有問題,而不是系統本身。
我認為這是目前 rpm/rpmbuild 版本中的限製或錯誤。我報告了這個問題,所以我認為在某種程度上回答了問題:
https://bugzilla.novell.com/show_bug.cgi?id=697943
您總是必須成對安裝 wx rpms — 一個帶有真正的庫,另一個包簡單地說“庫已安裝”。
- libwx_baseu_net-2_8-0-wxcontainer-2.8.12-3.1.x86_64
- libwx_baseu_net-2_8-0- compat-lib -wxcontainer-2.8.12-3.1.x86_64
如果沒有第二個 rpm,包管理器和/或依賴應用程序將根本不知道相應的 wx 庫存在。