Почему моя 64-битная система ищет 32-битные репозитории?

На моем ноутбуке установлена ​​64-битная версия 12.10. При запуске обновления apt-get он загружает списки пакетов для 32-битных пакетов (а также исходные и 64-битные списки пакетов). Почему он ищет 32-битные списки пакетов в 64-битной системе? Я включил один из предметов, которые он пытается найти ниже.

http://us.archive.ubuntu.com/ubuntu/dists/quantal-backports/multiverse/binary-i386/Packages
18
задан 9 January 2013 в 18:12

1 ответ

Путание, не так ли? Позвольте мне объяснить немного.

Почему?

  • 32-разрядное программное обеспечение хорошо работает на 64-разрядном ядре с 64-разрядными способными аппаратными средствами.
  • Некоторое программное обеспечение все еще полагается на определенные 32-разрядные библиотеки. Это не хорошо, но иногда мы не имеем права изменять это.
  • 32-разрядное программное обеспечение должно быть доступно системе для удовлетворения зависимостей, таким образом, это использует 32-разрядные репозитории также.

Я с начала 2011 года.Что случилось?

В 64-разрядных версиях Ubuntu прежде 11.10, некоторый набор общих 32-разрядных библиотек был упакован на сингле ia32-libs пакет, представленный APT/Dpkg, как являющемуся 64-разрядным и в таком месте в репозитории. Если бы Вам, оказывается, нужна единственная библиотека для приложения, это зависело бы от 150 + МБ 32-разрядного libraries1. Очевидно, это не хороший дизайн.

Несколько архитектуры?

Новая идея состояла в том, чтобы представить так называемые возможности "Мультидуги" APT/Dpkg и инструментам вокруг этого. Это было представлено в нескольких проектах на Панели запуска, вот один из них. Сновещательный (11.10) стал первым выпуском, который поддерживал Мультидугу.

Как это работает?

Можно сказать 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

Вышеупомянутый пример показывает, что Мультидуга позволяет специалистам по обслуживанию пакета просто заставить свои пакеты зависеть от libqt4-core:i386 например, и позволяет установить любую 32-разрядную библиотеку/пакет (и таким образом устанавливать любой пакет, который зависит от любой 32-разрядной библиотеки/пакета), а не предварительно выбранный набор.

ia32-libs совместимость

В случае, если Вы использовались для установки ia32-libs пакет как пакет удобства для установки единого набора основных 32-разрядных библиотек можно теперь использовать ia32-libs-multiarch Install ia32-libs-multiarch. Это - простой метапакет в зависимости от того же (или по крайней мере очень похожий) набор библиотек, но это будет установлено с питанием Мультидуги.

Далее связанные чтения

1 для ясного (10.04) ia32-libs размер установки пакета составляет 155 812,0 КБ.

28
ответ дан 9 January 2013 в 18:12

Другие вопросы по тегам:

Похожие вопросы: