私の考えでは、Linuxの多くの問題は依存関係の不一致が原因で発生します。特に2つのバージョンのライブラリをインストールすることはできません。
したがって、プログラムAに「lib1.2」が必要で、プログラムBに「lib1.3」が必要な場合は、一緒に実行することはできません。
質問:
- そうですか?
- 中央リポジトリがlib1.2とlib1.3の両方をサポートし、プログラムが要求したバージョンを取得できるのはなぜですか?
ベストアンサー1
ほとんどのLinuxディストリビューションでは、システムに複数のバージョンのライブラリがあることは問題ではありません。つまり、異なるバージョンの共有ライブラリを持つことです。ソネーム/usr/lib
同じディレクトリに共存できます。また、正しいパッケージ名を指定して、これらのライブラリを複数インストールするようにパッケージマネージャに指示することもできます。
apt-get install libjpeg7
apt-get install libjpeg8
実際、このシステムには2つのトラップが発生する可能性があります。
ほとんどのディストリビューションは、スペースを節約するためにリリースごとに1つのライブラリバージョンのみを提供します。たとえば、Debian Wheezyだけです。ソースから特定のライブラリバージョン(たとえば)を
libjpeg8
インストールし続け、問題なく他のバージョンと共存できます。libjpeg7
他のディストリビューションからパッケージをインストールしてみることもできますが、多くの依存関係が発生する可能性があるので注意してください。場合によっては、同じ名前(互換性を意味する)を持つ2つのライブラリバージョンが一部のプログラムでは機能しますが、他のプログラムでは機能しないことがあります。ところで、これが当初は複数のバージョンのディストリビューションを持つ主な理由です。この場合、解決策は互換性のないライブラリを外部に維持
/usr/lib
し、LD_LIBRARY_PATHまたはchrootを介して特定のプログラムにアクセスできるようにすることです。