Не так ли? Позвольте мне объяснить немного.
Почему?
- 32-разрядное программное обеспечение отлично работает на 64-разрядном ядре с 64-разрядным оборудованием.
- Некоторое программное обеспечение по-прежнему зависит от конкретных 32-разрядных библиотек. Это нехорошо, но иногда мы не можем изменить это.
- Для удовлетворения зависимостей в системе должно быть доступно 32-разрядное программное обеспечение, поэтому оно также использует 32-разрядные репозитории.
Я с начала 2011 года. Что случилось?
В 64-разрядных версиях Ubuntu до 11.10 некоторые общие 32-разрядные библиотеки были упакованы в один ia32-libs
пакет, представленный APT / Dpkg как 64-разрядный и расположенный в таком месте в хранилище. Если вам понадобится одна библиотека для приложения, это будет зависеть от 150+ МБ 32-битных библиотек 1 . Понятно, что это не очень хороший дизайн.
Несколько архитектур?
Новая идея состояла в том, чтобы представить так называемые возможности «Multiarch» для APT / Dpkg и инструментов вокруг него. Это было представлено в нескольких чертежах на Launchpad, вот один из них . Oneiric (11.10) стал первым выпуском, который поддерживал Multiarch.
Как это работает?
Вы можете указать 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
Вышеприведенный пример показывает, что Multiarch позволяет сопровождающим пакетов, libqt4-core:i386
например, просто зависеть от их пакетов и дает возможность установить любую 32-битную библиотеку / пакет (и, таким образом, установить любой пакет, который зависит от любой 32-битной библиотеки / пакета). , а не заранее выбранный набор.
ia32-libs
совместимость
Если вы привыкли устанавливать ia32-libs
пакет как удобный пакет для установки общего набора базовых 32-битных библиотек, теперь вы можете использовать его . Это простой метапакет, зависящий от того же (или, по крайней мере, очень похожего) набора библиотек, но он будет установлен с поддержкой Multiarch.ia32-libs-multiarch
Дальнейшие связанные чтения
1 Для Lucid (10.04) размер ia32-libs
пакета установки составляет 155 812,0 кБ.
dpkg --print-foreign-architectures
а не кататься/etc/dpkg/dpkg.cfg.d/multiarch
. Это не существует после 12.04.