gpt4 book ai didi

linux - 如何配置应用程序默认使用旧版本的库

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:30 25 4
gpt4 key购买 nike

默认情况下,当操作系统上安装了一个库的两个不同版本时,程序总是使用该库的较新版本。如何配置我的系统,以便所有应用程序默认使用旧版本的库?也许我应该使用 lddldconfig,但我不确定如何实现。

更多细节如下:我正在使用 Xubuntu Precise,但遇到了以下难题:

  • Xubuntu Precise 发布了 libpoppler v0.18.4 [1] 并且所有 Precise 应用程序(Evince、Inkscape 等)都是针对此版本的库构建的。
  • 我想构建和安装 ViewPDF [2],它需要 libpoppler >= v0.20
  • 出于上述原因,我从 Ubuntu Quantal [3] 向后移植了 libpoppler v0.20.4

以下是我系统上当前可用的库:

liv@liv-laptop:~$ 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

liv@liv-laptop:~$ 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

最佳答案

按照 configure 的默认前缀,将您从源代码构建的所有内容安装到 /usr/local

更新:如果您打算进一步分发此包,则需要采用不同的方法。我会创建一个名为 say /usr/lib/future 的目录,并将 libpoppler.so 的高级版本放在那里。应用程序将使用 -rpath=/usr/lib/future 和可能的 -rpath-link=/usr/lib/future 链接到它。

关于linux - 如何配置应用程序默认使用旧版本的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12914232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com