Multiarch в Debian Stretch

На свежеустановленной системе Debian Stretch столкнулся с проблемой при запуске 32-битного двоичного исполняемого файла в 64-битной системе:

# ./cfgfmt.linux -tptag.dat -sip ata0025459496ab.txt ata0025459496ab
-su: ./cfgfmt.linux: Нет такого файла или каталога
# file cfgfmt.linux 
cfgfmt.linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.0.0, stripped

И тут я вспомнил о том, что нужно включить multiarch - мультиархитектурность, которая позволяет запускать исполняемые файлы совместимых архитектур в операционной системе, которая обычно расчитана на поддержку только какой-либо одной конкретной архитектуры. Например, моя операционная система расчитана на архитектуру amd64, однако с поддержкой мультиархитектурности имеется возможность запуска приложений для совместимой с ней архитектуры i386.

Для добавления дополнительной совместимой архитектуры i386 в операционную систему архитектуры amd64 понадобится выполнить следующую команду:

# dpkg --add-architecture i386

Текущую архитектуру можно посмотреть такой командой:

# dpgk --print-architecture

Список совместимых архитектур, поддержка которых включена в системе, можно посмотреть при помощи такой команды:

# dpkg --print-foreign-architectures

Для получения возможности устанавливать пакеты архитектуры i386 из репозиториев понадобится настроить менеджер пакетов APT. Для этого зададим основную архитектуру и список всех используемых архитектур, создав файл /etc/apt/apt.conf.d/arch со следующим содержимым:

APT::Architecture "amd64";
APT::Architectures "amd64,i386";

Обновим список доступных к установке пакетов из репозиториев:

# apt-get update

Для запуска двоичных файлов, скомпилированных для архитектуры i386, нужно как минимум установить стандартную библиотеку поддержки языка Си:

# apt-get install libc6-i386

Пробуем выполнить первоначальную команду ещё раз:

# ./cfgfmt.linux -tptag.dat -sip ata0025459496ab.txt ata0025459496ab

На этот раз ошибок нет.

Написать автору