64ビットシステムが32ビットリポジトリを探すのはなぜですか?


19

ラップトップに64ビットの12.10をインストールしています。apt-get updateを実行すると、32ビットパッケージのパッケージリスト(およびソースおよび64ビットパッケージリスト)がダウンロードされます。64ビットシステムで32ビットパッケージリストを検索するのはなぜですか?以下に見つけようとするアイテムの1つを含めました。

http://us.archive.ubuntu.com/ubuntu/dists/quantal-backports/multiverse/binary-i386/Packages

回答:


28

紛らわしいですね。少し説明させてください。

どうして?

  • 32ビットソフトウェアは、64ビット対応ハードウェアを備えた64ビットカーネルで正常に動作します。
  • 一部のソフトウェアは、依然として特定の32ビットライブラリに依存しています。これは良くありませんが、これを変更する権限がない場合があります。
  • 32ビットソフトウェアは、依存関係を満たすためにシステムで使用できる必要があるため、32ビットリポジトリも使用します。

私は2011年初めから来ました。何が起きましたか?

11.10より前のUbuntuの64ビットバージョンでは、いくつかの一般的な32ビットライブラリのセットがia32-libs、APT / Dpkgに対して64ビットとして表される単一のパッケージと、リポジトリ内のそのような場所にパッケージされていました。アプリケーションに1つのライブラリが必要な場合、32ビットライブラリの150 MB以上に依存します1。明らかに、これは素晴らしいデザインではありません。

複数のアーキテクチャ?

新しいアイデアは、いわゆる「Multiarch」機能をAPT / Dpkgとその周辺のツールに導入することでした。これは、Launchpadのいくつかの設計図で提示されましたそのうちの1つを次に示します。Oneiric(11.10)はMultiarchをサポートする最初のリリースになりました。

どのように機能しますか?

システムで実行可能なアーキテクチャをDpkgに伝えることができます。12.04 64ビットインストールでは、これは次のとおりです。

$ cat /etc/dpkg/dpkg.cfg.d/multiarch 
foreign-architecture i386

デフォルトのままで、i386パッケージの全世界を開きamd64ます:

$ apt-cache show libqt4-core                   | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb

$ apt-cache show libqt4-core:i386              | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb

上記の例は、Multiarchがパッケージメンテナーがパッケージを単純に依存さlibqt4-core:i386せることを可能にし 32ビットライブラリ/パッケージをインストールできるようにすることを示しています(したがって、32ビットライブラリ/パッケージに依存するパッケージをインストールできます) 、事前に選択されたセットではなく。

ia32-libs 互換性

場合は、インストールするために使用されたia32-libs基本的な32ビットライブラリの共通セットをインストールするために便利なパッケージとしてパッケージを、あなたが今使用することができます。これは、同じ(または少なくとも非常によく似た)ライブラリセットに依存する単純なメタパッケージですが、Multiarchの力でインストールされます。ia32-libs-multiarch ia32-libs-multiarchをインストールする

さらに関連する測定値

1 Lucid(10.04)の場合、ia32-libsパッケージのインストールサイズは155,812.0 kBです。


5
dpkg --print-foreign-architecturesキャットするより走ることをお勧めします/etc/dpkg/dpkg.cfg.d/multiarch。12.04以降は存在しません。
タンブルウィード

自宅でapt-mirrorをセットアップしたばかりで、64ビットリポジトリをミラーリングすることを望んでいました。私はそれができないのは残念ですが、今なぜなのか理解しており、このように理にかなっています。回答が受け入れられました!
tgm4883

@ tgm4883本当に実行したいamd64だけなら、外部アーキテクチャ設定を削除できます。これは、ia32-libs利用できない状態で古いUbuntuを実行するのに似ています。
gertvdijk

1
私は読み始め、私の心では言った:hmmはgertvdijkからの投稿のように見えます:+)Goedeの投稿;)
Rinzwind
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.