アーキテクチャがamd64であるにもかかわらず、i386ファイルを探しているapt


15

接続されていないマシンでlinux / ubuntuを更新するためにファイルリポジトリを使用しようとしています。このマシンのアーキテクチャ(uname -a):

x86_64 GNU/Linux

結果は次のdpkg --printarchitectureとおりです。

amd64

これはTrusty Tahr amd64マシンであり、たとえばaptitude sources.listファイルで具体的にこれを示しています。また、ubuntuの「About this Computer」には、マシンが64ビットであると明記されています。そこで、amd64パッケージをマシンにインストールしました。ただし、実行しようとするとapt-get update、次のようなエラーが表示されます。

W: Failed to fetch file:/var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu/dists/trusty/main/binary-i386/Packages  File not found

つまり、64ビットマシンであっても、aptはi386パッケージを読み取ろうとしています。なぜこれを行っているのですか、どうすれば64ビットパッケージを使用できますか?

sources.listにはi386を指定するものは何もないことに注意してください。

sources.listファイルのコメント化されていない行は次のとおりです。

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

たぶん、i386とamd64で物事をコンパイルしないほど怠laなパートナーソフトウェアプロバイダー(Skype、cof、cof ..)があるため、Ubuntuではこのマルチアーチサポートがデフォルトで有効になっています。multiarchライブラリが必要になるため、dpkgamd64と32ビットの兄弟を受け入れるようにデフォルトで設定されます。私は「たぶん」と言います。なぜなら、この情報に関する公式文書を見つけていないからです。ちょうど私の2セント。

回答:


25

Ubuntu amd64インストールでi386は、デフォルトで追加のアーキテクチャとして有効になっています。apt&co。リポジトリが設定されたすべてのアーキテクチャを提供することを期待しているため、表示されるエラーが発生します。

ミラーにはamd64パッケージしかないため、次のようにマークする必要があります。

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

それがまさに問題でした。この修正により、リポジトリが受け入れられ、更新されました。ありがとう。
タイラーダーデン

2
dpkg --print-foreign-architecturesマルチアーチサポートが有効になっているアーキテクチャが表示されます。私は同じ問題を抱えていたし、(おそらく当然)上記のコマンドは、報告:i386
sxc731

これはデフォルトで追加アーキテクチャを無効にする方法を説明しません。[arch=amd64]各行に置く ことdebは良い解決策ではありません。これを行う方法を説明します:superuser.com/a/714392/376867
midenok

2
@midenokすべてのリポジトリ記述子にarch修飾子を追加することをどこで提案しましたか?i386面倒な1つのリポジトリを完全に無効にすることは、やり過ぎです。質問で説明されている問題の原因となっているリポジトリが複数ある場合、ローカル構成ではなくリポジトリのArchitecturesフィールドに問題があることを示していることに注意してください。
スティーブンキット

@Stephen Kittわかりました、質問で説明されている特定の問題を解決しました。しかし、あなたのソリューションは実用的ではありません。askerや私を含むほとんどの人は、パッケージリストにi386パッケージを表示したくないでしょう。
-midenok
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.