Как установить ‘build-essential:i386’ на Debian 7.9 x64?

Вопрос или проблема

Я на Debian 7.9 (wheezy) x64 и хотел бы установить build-essential:i386.

Я уже добавил i386 в dpkg --architecture, обновил aptitude и успешно установил java-jdk-1.6:i386.

Кстати, как бы я ни пытался, build-essential систематически генерирует ошибку зависимости с:

apt-get install build-essential:i386
Зависимость: dpkg-dev:i386 (>= 1.13.5)
E: Невозможно исправить проблемы, у вас есть зависшие испорченные пакеты...

Если кто-то имеет идею… Спасибо.

Также я нашел это на почтовых списках Debian – Re: cross-build-essential

Скажем, я хочу иметь установленный build-essential для i386 на amd64. Я мог бы установить build-essential:i386, заменив gcc/g++:amd64 на gcc/g++:i386. Разве это не обеспечит меня всем необходимым для кросс-компиляции для i386?

В этом случае, да, потому что вы можете запускать код x86 на CPU AMD64 или Intel 64. Хотя вы действительно будете заменять gcc-4.7:amd64 и т.д. на gcc-4.7:i386 и т.д., так как пакеты не могут быть установлены вместе с собой.

Это правда?

Ну, дело в том, что вам на самом деле не нужен build-essential:i386 на системе amd64, в зависимости от того, что вы хотите скомпилировать, вам могут потребоваться libpam-dev:i386 или другие 32-битные библиотеки -dev, но вы должны использовать 64-битные инструменты, даже для генерации 32-битного кода, в основном потому, что они должны, в теории, работать быстрее … у них доступ к большему объему памяти …

Да, это правда, что вы не можете установить build-essential:i386 и build-essential:amd64 одновременно. Это потребовало бы наличия двух экземпляров некоторых исполняемых файлов (например, gcc), и это не поддерживается Спецификацией Multiarch:

Неразрешенные проблемы

Устанавливаемые вместе пакеты для исполняемых файлов

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

Ответ или решение

Установка build-essential:i386 на Debian 7.9 x64

Для установки пакета build-essential:i386 на систему Debian 7.9 (Wheezy) с архитектурой x64 необходимо соблюсти несколько условий и шагов. В данном ответе мы подробно рассмотрим процесс, включая решение возможных зависимостей и проблем, которые могут возникнуть.

1. Подготовка системы

Перед началом установки убедитесь, что ваша система обновлена:

sudo apt-get update
sudo apt-get upgrade

2. Добавление архитектуры i386

Убедитесь, что вы добавили поддержку архитектуры i386. Для этого выполните следующую команду:

sudo dpkg --add-architecture i386

После этого обновите список пакетов:

sudo apt-get update

3. Установка необходимых зависимостей

Для установки build-essential:i386 могут потребоваться дополнительные 32-битные библиотеки и пакеты. В диагностическом сообщении о зависимостях указано, что отсутствует пакет dpkg-dev:i386. Установите его с помощью команды:

sudo apt-get install dpkg-dev:i386

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

4. Установка build-essential:i386

После успешной установки всех необходимых зависимостей можно приступать к установке самого пакета:

sudo apt-get install build-essential:i386

Обратите внимание на то, что при установке build-essential:i386 вы не можете одновременно иметь установленные пакеты build-essential:amd64. Это связано с архитектурной несовместимостью некоторых исполняемых файлов.

5. Проблемы с зависимостями

В случае возникновения ошибок связанных с "held broken packages" или зависимостями, выполните следующую команду для поиска и устранения поломанных пакетов:

sudo apt-get install -f

Если это не решит проблему, попробуйте удалить конфликты следующими командами:

sudo apt-get remove <broken-package-name>

Затем повторите попытку установки.

6. Примечания к установке

Учитывайте, что для кросс-компиляции и разработки в 32-битной среде, возможно, вам необходимо устанавливать не только build-essential:i386, но и другие соответствующие 32-битные библиотеки, такие как libpam-dev:i386. Часто для разработчика более целесообразно использовать 64-битные инструменты, так как они работают быстрее и могут использовать больше памяти.

Заключение

Установка build-essential:i386 на Debian 7.9 x64 требует внимательного подхода к управлению зависимостями и архитектурным особенностям. Соблюдение вышеприведённых шагов и рекомендаций поможет вам успешно завершить установку. Если же возникнут дополнительные трудности, рекомендую обратиться к документации или сообществу Debian для получения более детальной помощи.

Ваши усилия по установке инструментов разработки в 32-битной среде откроют новые возможности в кросс-компиляции и разработке под разные архитектуры.

Оцените материал
Добавить комментарий

Капча загружается...