Linuxが中央リポジトリで複数のバージョンを受け入れないのはなぜですか?

Linuxが中央リポジトリで複数のバージョンを受け入れないのはなぜですか?

私の考えでは、Linuxの多くの問題は依存関係の不一致が原因で発生します。特に2つのバージョンのライブラリをインストールすることはできません。

したがって、プログラムAに「lib1.2」が必要で、プログラムBに「lib1.3」が必要な場合は、一緒に実行することはできません。

質問:

  1. そうですか?
  2. 中央リポジトリがlib1.2とlib1.3の両方をサポートし、プログラムが要求したバージョンを取得できるのはなぜですか?

ベストアンサー1

ほとんどのLinuxディストリビューションでは、システムに複数のバージョンのライブラリがあることは問題ではありません。つまり、異なるバージョンの共有ライブラリを持つことです。ソネーム/usr/lib同じディレクトリに共存できます。また、正しいパッケージ名を指定して、これらのライブラリを複数インストールするようにパッケージマネージャに指示することもできます。

apt-get install libjpeg7
apt-get install libjpeg8

実際、このシステムには2つのトラップが発生する可能性があります。

  1. ほとんどのディストリビューションは、スペースを節約するためにリリースごとに1つのライブラリバージョンのみを提供します。たとえば、Debian Wheezyだけです。ソースから特定のライブラリバージョン(たとえば)をlibjpeg8インストールし続け、問題なく他のバージョンと共存できます。libjpeg7他のディストリビューションからパッケージをインストールしてみることもできますが、多くの依存関係が発生する可能性があるので注意してください。

  2. 場合によっては、同じ名前(互換性を意味する)を持つ2つのライブラリバージョンが一部のプログラムでは機能しますが、他のプログラムでは機能しないことがあります。ところで、これが当初は複数のバージョンのディストリビューションを持つ主な理由です。この場合、解決策は互換性のないライブラリを外部に維持/usr/libし、LD_LIBRARY_PATHまたはchrootを介して特定のプログラムにアクセスできるようにすることです。

おすすめ記事