Translation(s): English Brasileiro

Multiarch в Debian

О термине

Multiarch (мультиархитектурность) - это термин используемый для обозначения способности системы устанавливать и запускать приложения нескольких различных бинарных целей в той же системе. Например, запуск i386-linux-gnu приложения на amd64-linux-gnu системе. Этот пример является наиболее распространенным случаем, но возможны и другие комбинации, например, armel и armhf.

Multiarch также упрощает кросс-сборку, когда во время сборки требуются библиотеки и заголовки другой архитектуры.

Существующие решения позволяют совместную установку библиотек и заголовков различных архитектур, но (пока) не бинарных файлов. Таким образом, вы можете иметь либо i386 либо amd64 версию двоичного файла, но не оба (с использованием обычных /bin путей). Все зависимости будут установлены и доступны для соответствующего двоичного файла.

Multiarch важен, получил мощное развитие, и влияет на многие процессы и аспекты системы. Непосредственный практический эффект - избавление от пакета ia32-libs, и правильное разрешение межархитектурных зависимостей при кросс-разработке.

Первоначально работал в Ubuntu Natty и Debian Wheezy, а также использовался исключительно в armhf-портах Debian, и для начальных загрузчиков arm64 и mips64el портов.

Документация

Следующие документы определяют реализацию Multiarch и должны содержать все, что нужно знать.

Выбор Multiarch
Почему мы выбираем её? Разве lib64 недостаточно хороши для всех?

Спецификация менеджера пакетов Multiarch
Основная спецификация детализирующая как разместить файлы, как определить зависимости, и как это работает в сочетании с apt и dpkg.

Multiarch/Tuples
Схема кортежей используется для Multiarch-путей (вместо GNU триплетов).

HowTo для пользователей Multiarch
Ориентированная на пользователей информация о том, как использовать Multiarch: конфигурация, установка, кросс-сборка.

Multiarch-преобразования практические рекомендации
Документ для сопровождающих, подробно описывающий, как вы можете конвертировать ваш пакет библиотеки для Multiarch-путей.

Начальная загрузка
Процесс/порядок/сроки для получения мультиархитектурного Debian unstable.

Вопросы об инструментах
В процессе преобразования могут возникнуть проблемы с инструментами использующими apt или dpkg, они документированы здесь.

Спецификация multiarch кросс-разработки
Как multiarch используется для кросс-разработки, в том числе расширения для поддержки кросс-сборочных-зависимостей.

Линкер и поведение multilib
Пояснительные сведения о линкере, gcc, libc и multilib. Строго говоря, это не часть спецификации multilib, но эта информация объясняет, почему это работает и вносит ясность в обсуждение будущих разработок.

Есть много других ныне замененых документов. Если вам интересна история разработки, ссылки на заменённые (устаревшие) документы даны ниже по тексту.

Ресурсы

IRC канал: #multiarch на irc.debian.org (OFTC).

Там нет конкретного списка рассылки. Обсуждение в списках/каналах, применяемых пакетов и инструментов, таких как dpkg, apt, gcc и общих списках для разработчиков (например, debian-devel)

Текущий Статус

Дебютировал в Ubuntu Natty и Debian Wheezy.

Apt - поддержка с Debian Squeeze и Ubuntu Maverick

Патчи для gcc, eglibc, а также ряд базовых библиотек доступны в Ubuntu natty.ch

Dpkg - поддержка доступна начиная с версии 1.16.2.

Инструмент кортежей: https://code.launchpad.net/~vorlon/+junk/multiarch-tools

Будущее развитие

Добавление поддержки совместно устанавливаемых бинарных файлов возможно в будущих расширениях, но не является частью текущей работы над multiarch (применительно к нему на ближайшие 7 лет, не 15).

Multiarch делает различные вещи возможными или даже простыми: кросс-архитектурные зависимости, кросс-компиляторы в архиве, частичные архитектуры. Эти вопросы обсуждались на встрече состоявшейся в debconf11. Multiarch/Debconf11MultiarchRelatedMinutes

История

Возникновение Multiarch было (очень!) долгим, и за это время предложения значительно изменялись. Вот некоторые из дат, когда это случилось, со ссылками на документы, написанные в то время. Они все были заменены документами, ссылки на которые есть выше.

Старые Ресурсы