На моем ноутбуке установлена 64-битная версия 12.10. При запуске обновления apt-get он загружает списки пакетов для 32-битных пакетов (а также исходные и 64-битные списки пакетов). Почему он ищет 32-битные списки пакетов в 64-битной системе? Я включил один из предметов, которые он пытается найти ниже.
http://us.archive.ubuntu.com/ubuntu/dists/quantal-backports/multiverse/binary-i386/Packages
Путание, не так ли? Позвольте мне объяснить немного.
В 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
. Это - простой метапакет в зависимости от того же (или по крайней мере очень похожий) набор библиотек, но это будет установлено с питанием Мультидуги.
1 для ясного (10.04) ia32-libs
размер установки пакета составляет 155 812,0 КБ.