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 было (очень!) долгим, и за это время предложения значительно изменялись. Вот некоторые из дат, когда это случилось, со ссылками на документы, написанные в то время. Они все были заменены документами, ссылки на которые есть выше.
- 2011.02.22
Обсуждение Multiarch на встрече Emdebian - Dpkg начинает узнавать multiarch.
- 2011.02.15
- 2010.09
- Готовый к Multiarch apt (v0.8) появился в Squeeze. Dpkg, к сожалению, был не совсем готов.
- 2010.08.04
В Debconf10 внесено предложение о новых именах ABI, которые необходимы для правильной реализации Multiarch.
- 2010.06.30
На обсуждении на спринте Линаро/Ubuntu в Праге появился очень полезный документ о том, как компиляторы, пути, линкеры и загрузчики сочетаются друг с другом
- 2009.07.25
Информация ниже устарела и имеет только историческую ценность. Смотри MultiarchSpec о текущей кросс-дистрибутивной работе.
- 2008.06.23
- Multiarch патчи для dpkg 1.14.20 обновлены и загружены на патч-трекер Debian Multiarch Alioth Project. Добавлена поддержка MA, исключая отслеживание зависимостей.
- 2006.02
- Встреча FOSDEM Multiarch
- 2005.07
- Обсуждение Multiarch на Debconf 5
- 2004.05
- Multiarch BOF на Debconf 4
Старые Ресурсы
- Форумы
- Документы
Предложение о именовании кортежей Предложение внедрить новую схему кортежей вместо GNU триплетов для Multiarch путей. Нынешнюю схему кортежей можно найти на Multiarch/Tuples.
Оценка Стратегии реализации Multiarch PDF
Проект документа dpkg2.0 PDF
- Переговоры
debconf4 - Multiarch: почему и как, предложение - 1 июня 2004 - Tollef Fog Heen, Matt Taggart - Порту-Алегри, Бразилия HTML | PDF
debconf5 - Multiarch предложения и реализация - 10 июля 2005 Tollef Fog Heen HTML Видео: HTML Video: MPEG | OGG
debconf5 - Замораживание HEL Over (dpkg2.0) - 15 июля 2005 ott James Remnant MPEG | OGG
- IRC обсуждения
Интересная тема -rpath ветка
- Направление движения
?необходимые лекарства для Etch dpkg