Несмотря на настройки Multiarch, Ubuntu 16.04 не поддерживает установку 32-битных и 64-битных библиотек в ОС
Мне нужно скомпилировать / связать 32-битные и 64-битные исполняемые файлы C/C++ в Ubuntu 16.04 (64-битные). Я выполнил следующие командные строки:
sudo apt-get install build-essential
sudo apt-get install automake libtool libtool-bin
sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install gcc-multilib g++-multilib
sudo apt-get install libglib2.0-dev
Последняя команда установит 64-битную библиотеку glib2.0
Но когда я пытаюсь установить 32-битную библиотеку glib2.0 с помощью команды:
sudo apt-get install libglib2.0-dev:i386
Он удаляет 64-битную библиотеку glib2.0, которую я только что установил ранее (как отмечено в комментарии удаления после выполнения 32-битной установки):
dev@ubuntu:~$ sudo apt-get install libglib2.0-dev:i386
[sudo] password for dev:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libltdl-dev:i386 libltdl7:i386 libpcre3-dev libpcre32-3 libpcrecpp0v5 libxext-dev:i386 libxext6:i386
libxfixes-dev:i386 libxfixes3:i386 libxi6:i386 libxtst6:i386 odbcinst1debian2:i386 zlib1g-dev
Use 'sudo apt autoremove' to remove them.
Suggested packages:
libglib2.0-doc:i386
The following packages will be REMOVED:
libglib2.0-dev
The following NEW packages will be installed:
libglib2.0-dev:i386
0 upgraded, 1 newly installed, 1 to remove and 15 not upgraded.
Need to get 0 B/1,422 kB of archives.
After this operation, 1,367 kB disk space will be freed.
Do you want to continue? [Y/n]
Может кто-нибудь сказать мне, как я могу предотвратить удаление 64-битных библиотек glib2.0 (а также других библиотек, которые я могу установить) при установке его 32-битной версии в Ubuntu 16.04. Мне нужны как 32-битные, так и 64-битные библиотеки для моей сборки C/C++.
Как отмечено в списке команд, которые я выполнил, я добавил 32-битную архитектуру в свою 64-битную Ubuntu и убедился, что она распознается ОС:
dev@ubuntu:~$ dpkg --print-architecture
amd64
dev@ubuntu:~$ dpkg --print-foreign-architectures
i386
Таким образом, основываясь на приведенном выше запросе, не должно быть никаких причин, по которым я не могу установить библиотеку glib2.0, которая является 64-битной и 32-битной (или для любой библиотеки, имеющей обе 64-32-битные библиотеки), установленной в том же 64 ОС, верно? По крайней мере, это то, что говорит мне ссылка на многоархивную версию Debian.
Если так, то где я иду не так, что менеджер пакетов запрещает это? Multiarch, есть поддержка на Ubuntu 16.04, верно?