Suche nach i386-Dateien, auch wenn die Architektur amd64 ist

14

Ich versuche, ein Datei-Repository zum Aktualisieren von Linux / Ubuntu auf einem nicht verbundenen Computer zu verwenden. Die Architektur für diese Maschine (uname -a):

x86_64 GNU/Linux

Die Ergebnisse von dpkg --printarchitecturesind:

amd64

Es handelt sich um einen Trusty Tahr amd64-Computer, und dies wird beispielsweise in der Datei aptitude sources.list ausdrücklich angegeben. Außerdem wird in "Über diesen Computer" in Ubuntu speziell angegeben, dass der Computer 64-Bit ist. Also habe ich die amd64-Pakete auf dem Computer installiert. Wenn ich es jedoch versuche apt-get update, erhalte ich Fehler wie:

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

Mit anderen Worten, obwohl es sich um eine 64-Bit-Maschine handelt, versucht apt unerklärlicherweise, i386-Pakete zu lesen. Warum macht es das und wie kann ich dafür sorgen, dass die 64-Bit-Pakete verwendet werden?

Beachten Sie, dass in sources.list nichts vorhanden ist, das i386 angibt.

Die einzige unkommentierte Zeile in der Datei sources.list lautet:

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Tyler Durden
quelle
Möglicherweise ist diese Multiarch-Unterstützung unter Ubuntu standardmäßig aktiviert, da es einige Partner-Softwareanbieter (Skype, cof, cof ..) gibt, die träge genug sind, um Dinge auf i386 und amd64 nicht zu kompilieren. Da Multiarch-Bibliotheken benötigt werden, dpkgist standardmäßig so konfiguriert, dass amd64 und dessen 32-Bit-Geschwister akzeptiert werden. Ich sage "vielleicht", weil ich mit diesen Informationen keine offizielle Dokumentation gefunden habe. Nur meine 2 Cent.

Antworten:

24

Ist bei Ubuntu- amd64Installationen i386standardmäßig als zusätzliche Architektur aktiviert. apt& co. Erwarten Sie, dass Repositorys alle konfigurierten Architekturen bereitstellen, was den angezeigten Fehler verursacht.

Da Ihr Mirror nur amd64Pakete enthält, sollten Sie ihn als solchen kennzeichnen:

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Stephen Kitt
quelle
Das war in der Tat das Problem. Mit diesem Fix wurde das Repository akzeptiert und aktualisiert. Vielen Dank.
Tyler Durden
2
dpkg --print-foreign-architecturesZeigt alle Architekturen an, für die die Multiarch-Unterstützung aktiviert ist. Ich hatte das gleiche Problem und (wahrscheinlich nicht überraschend) den oben genannten Befehl gemeldet:i386
sxc731
Dies erklärt nicht, wie zusätzliche Architektur standardmäßig deaktiviert wird . In [arch=amd64]jede debZeile zu schreiben ist keine gute Lösung. Dies erklärt , wie es geht: superuser.com/a/714392/376867
midenok
2
@midenok Wo habe ich vorgeschlagen, jedem Repository-Deskriptor ein Arch-Qualifikationsmerkmal hinzuzufügen? Die vollständige Deaktivierung i386des Umgangs mit einem lästigen Repository ist ziemlich übertrieben. Beachten Sie, dass wenn Sie mehrere Repositorys haben, die das in der Frage beschriebene Problem verursachen, dies auf ein Problem im Feld Architekturen der Repositorys hinweist , nicht auf die lokale Konfiguration.
Stephen Kitt
@Stephen Kitt Okay, du hast ein bestimmtes Problem gelöst, das in Frage gestellt wurde. Ihre Lösung ist jedoch nicht praktikabel. Die meisten Leute, einschließlich Fragesteller und ich, möchten i386-Pakete nicht in der Paketliste sehen.
Midenok