Ubuntuリポジトリには、lib32stdc++6
やlib32ncurses5
などの一連のライブラリがあります。これらを64ビットシステムにインストールするか、libstdc++6:i386
およびlibncurses5:i386
をインストールします。 2種類のパッケージの違いを知りたいと思います。
実際の違いは何ですか?なぜ両方とも利用できるのですか? libx:i386
が物事を行う新しい方法であるという印象を受けて、この方法はlib32x
バリアントをインストールするよりも常に好まれますか?いくつかのlib32x
およびいくつかのlibx:i386
ライブラリが既にインストールされていることも、それらを対応するものに置き換えることによって1つのタイプのパッケージのみに切り替えるのが良い考えかと思います。
これらのパッケージの実際の違いは、ライブラリの場所です。 _libfoo:i386
_を使用すると、ライブラリは_/usr/lib/i386-linux-gnu
_などのマルチアーキテクチャパスになりますが、_lib32foo:AMD64
_を使用すると、ライブラリは_/usr/lib32
_などの「古い」パスになります。遠い将来、_lib32foo
_パッケージは削除されますが、まだありません。少なくとも_lib32stdc++6
_は、ターゲットアーキテクチャ(つまり、アーキテクチャ)を選択する_gcc-X.Y
_などのスイッチをサポートできる_gcc-X.Y-multilib
_をビルドするため、現時点で_-m32
_のビルドに必要結果のバイナリの)。 _lib32foo
_パッケージがないと、_gcc-X.Y
_のビルド依存関係がアーキテクチャの境界を越えてしまい、これはまだサポートされていません。 _lib32foo
_パッケージをしばらく保持する必要がある問題がいくつかあります。