2012-10-16 23 views
0

默認情況下,當OS上安裝了該庫的兩個不同版本時,程序始終使用較新版本的庫。如何配置我的系統以便所有應用程序默認使用庫的較早版本?也許我應該使用lddldconfig,但我不知道如何實現這一點。如何將應用程序配置爲默認使用舊版本庫

更多的細節如下: 我使用的是Xubuntu精確,我碰到以下難題:

  • Xubuntu的精確船舶libpoppler v0.18.4 [1]和所有的應用程序精確(了Evince,Inkscape中,等)是針對這個版本的庫而構建的。
  • 我想構建並安裝ViewPDF [2],它需要libpoppler >= v0.20
  • 由於上述原因,我從Ubuntu Quantal [3]中支持libpoppler v0.20.4

這裏是庫目前可我的系統上:

[email protected]:~$ locate libpoppler. | grep -i /usr/lib/ 
/usr/lib/x86_64-linux-gnu/libpoppler.a 
/usr/lib/x86_64-linux-gnu/libpoppler.so 
/usr/lib/x86_64-linux-gnu/libpoppler.so.19 
/usr/lib/x86_64-linux-gnu/libpoppler.so.19.0.0 
/usr/lib/x86_64-linux-gnu/libpoppler.so.28 
/usr/lib/x86_64-linux-gnu/libpoppler.so.28.0.0 

[email protected]:~$ ls -lh /usr/lib/x86_64-linux-gnu/libpoppler.* 
-rw-r--r-- 1 root root 3.8M Sep 24 17:15 /usr/lib/x86_64-linux-gnu/libpoppler.a 
lrwxrwxrwx 1 root root 20 Sep 24 17:14 /usr/lib/x86_64-linux-gnu/libpoppler.so -> libpoppler.so.28.0.0 
lrwxrwxrwx 1 root root 20 Sep 4 12:35 /usr/lib/x86_64-linux-gnu/libpoppler.so.19 -> libpoppler.so.19.0.0 
-rw-r--r-- 1 root root 2.0M Mar 1 2012 /usr/lib/x86_64-linux-gnu/libpoppler.so.19.0.0 
lrwxrwxrwx 1 root root 20 Sep 24 17:14 /usr/lib/x86_64-linux-gnu/libpoppler.so.28 -> libpoppler.so.28.0.0 
-rw-r--r-- 1 root root 2.4M Sep 24 17:15 /usr/lib/x86_64-linux-gnu/libpoppler.so.28.0.0 

現在構建和運行ViewPDF工作得很好。然而,最大的問題是,最初針對0.18.4構建的一些應用程序(xpdf,inkscape)已經損壞。

所以這裏是我的問題: 怎麼可能配置我的系統,以便所有的應用程序默認使用舊版本的poppler庫(libpoppler.so.19.0.0);並且只有專門針對較新版本(libpoppler.so.28.0.0)構建的應用才能使用最新版本?也許我應該使用ldd或ldconfig,但我不知道如何實現這一點。

  1. http://packages.ubuntu.com/precise/libpoppler19
  2. http://www.qtrac.eu/viewpdf.html
  3. http://packages.ubuntu.com/quantal/libpoppler28

回答

1

你建立從源/usr/local,爲每configure默認前綴Installl一切。

更新:如果您打算進一步分發此軟件包,則需要採用不同的方法。我會創建一個名爲「/usr/lib/future」的目錄,並在其中放置高級版本libpoppler.so。應用程序將使用-rpath=/usr/lib/future和可能的-rpath-link=/usr/lib/future來鏈接它。

+0

這個解決方案的問題在於,從維護者的POV安裝這樣的lib到/ usr/local比任何事情都更加黑客。我計劃通過Launchpad PPA使這個軟件包可用,並且如果用戶編譯自己的'libpoppler'本地副本,則會引發麻煩。有沒有更好的方法來處理這個問題,或許是通過整潔地配置'ldd'或者構建一個靜態的ViewPDF二進制文件? – landroni

+0

查看更新。 –

相關問題