вдало шукає файли i386, хоча архітектура - amd64


15

Я намагаюся використовувати сховище файлів для оновлення linux / ubuntu на непідключеній машині. Архітектура цієї машини (унаме -а):

x86_64 GNU/Linux

Результати dpkg --printarchitecture:

amd64

Це машина Trud amd64 Trusty, і це спеціально говориться про це, наприклад, у файлі aptitude Izvor.list. Крім того, "Про цей комп'ютер" в ubuntu спеціально говорить, що машина 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-бітні пакети?

Зауважте, що у source.list немає нічого, що вказує i386.

Єдиний коментований рядок у файлі source.list:

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

Можливо, ця підтримка мультиарха увімкнута за замовчуванням на Ubuntu, оскільки є деякі постачальники програмного забезпечення (Skype, cof, cof ..), які є досить ледачими, щоб не збирати речі на i386 та amd64. Оскільки знадобляться багатоархівні бібліотеки, dpkgза замовчуванням конфігурується для прийому amd64, і це 32-бітний брат. Я кажу "можливо", тому що я не знайшов жодної офіційної документації з цією інформацією. Всього мої 2 копійки.

Відповіді:


25

На amd64установках Ubuntu , 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 Де я запропонував додати класифікатор арки до кожного дескриптора сховища? Повністю забороняти i386працювати з одним клопітким сховищем - це надмірна кількість. Зауважте, що якщо у вас є кілька сховищ, що викликають проблему, описану в питанні, це вказує на проблему з полем Архітектури сховищ , а не з локальною конфігурацією.
Стівен Кітт

@Stephen Kitt Добре, ви вирішили одну конкретну проблему, описану в питанні. Але ваше рішення не є практичним. Більшість людей, включаючи аскер та я, не хочуть бачити i386 пакунки у списку пакунків.
midenok
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.