パッケージマネージャは、システムアーキテクチャと互換性のあるライブラリをどのようにインストールしますか?

パッケージマネージャは、システムアーキテクチャと互換性のあるライブラリをどのようにインストールしますか?

たとえば、私が書くとき

sudo apt-get install libjpeg-dev

libjpeg.so私のシステムにライブラリがインストールされます。

オンラインパッケージストアには、.soさまざまなシステムアーキテクチャ用のさまざまなファイルが含まれており、パッケージマネージャは正しいファイルのみをダウンロードしますか?または、パッケージマネージャはシステムからライブラリをコンパイルし、コンパイルされた.soファイルをインストールしますか?それとも私が考慮していない他のシナリオはありますか?

ベストアンサー1

ほとんどの場合、パッケージリポジトリにはさまざまなアーキテクチャ用のさまざまなパッケージが含まれており、パッケージマネージャは適切なパッケージをダウンロードします。一部のパッケージはすべてのアーキテクチャで同じで、パッケージマネージャはローカルシステムのアーキテクチャに関係なく同じパッケージをダウンロードします。

したがって、パッケージがダウンロードされますamd64apt install libjpeg-devall建築のため、それ自体はパッケージによって異なります。amd64建築のため

dpkg/ベースのシステムでは、デフォルトのaptアーキテクチャはパッケージアーキテクチャですdpkg。これらのシステムが別のアーキテクチャを使用するように構成してからそのパッケージをインストールする場合は、デフォルト以外の適切なアーキテクチャ(マルチアーキテクチャに準拠している場合)を指定する必要があります。

sudo apt install libjpeg62-turbo:armhf

Gentooなどのバイナリベースのディストリビューションではなく、ソースベースのディストリビューションはソースコードをダウンロードし、システム用のライブラリを構築します。

おすすめ記事