デフォルトでは、2 つの異なるバージョンのライブラリが OS にインストールされている場合、プログラムは常にそのライブラリの新しいバージョンを使用します。すべてのアプリがデフォルトで古いバージョンのライブラリを使用するようにシステムを構成するにはどうすればよいですか? おそらくldd
orを使用する必要がありますldconfig
が、それを達成する方法がわかりません。
以下に詳細をいくつか示します。私は Xubuntu Precise を使用していますが、次の難問に遭遇しました。
- Xubuntu Precise 出荷
libpoppler v0.18.4
[1] とすべての Precise アプリ (Evince、Inkscape など) は、このバージョンのライブラリに対してビルドされています。 - を必要とする ViewPDF [2] をビルドしてインストールしたい
libpoppler >= v0.20
。 - 上記の理由で
libpoppler v0.20.4
、Ubuntu Quantal [3] からバックポートしました。
私のシステムで現在利用可能なライブラリは次のとおりです。
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 をビルドして実行すると、問題なく動作します。ただし、大きな問題は、最初に構築されたアプリ (xpdf、inkscape) の一部0.18.4
が壊れていることです。
libpoppler.so.19.0.0
そこで私の質問です。すべてのアプリがデフォルトで古いバージョンの poppler ライブラリ ( )を使用するようにシステムを構成するにはどうすればよいですか? libpoppler.so.28.0.0
最新バージョンを使用するために、新しいバージョン ( ) に対して特別に構築されたアプリのみですか? おそらく、ldd または ldconfig を使用する必要がありますが、それを実現する方法がわかりません。