Descobri que este é provavelmente um bug: link .
Eu encontrei uma pergunta semelhante aqui , mas a resposta não está completamente clara para mim.
Por que instalar a versão i386 de um pacote aciona a remoção da versão x86_64 (e vice-versa)? Eu vejo esses são colocados em seus respectivos diretórios em / usr / lib / arch .
Por exemplo, é isso que acontece no meu sistema:
sudo apt install libicu-dev:i386 -V
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
icu-doc:i386
The following packages will be REMOVED:
libicu-dev (57.1-5ubuntu0.1)
The following NEW packages will be installed:
libicu-dev:i386 (57.1-5ubuntu0.1)
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 15.6 MB of archives.
After this operation, 24.0 MB disk space will be freed.
Do you want to continue? [Y/n]
Este é um problema, pois as libs do icu x86_64 são removidas do sistema, mas eu ainda preciso delas.
Na verdade, parece que esta operação não remove completamente as bibliotecas, mas remove os arquivos .so, o que faz com que qualquer link falhe. Para concluir a compilação, preciso instalar novamente o que está faltando.
Eu vejo que pode haver um choque dos arquivos de cabeçalho, talvez seja esse o motivo? Por que não foram colocados em diretórios separados de acordo com o arco como é feito para as bibliotecas? De fato, parece que é impossível construir para i386 e x86_64 independentemente, sem ter que trocar as libs todas as vezes, o que é bastante desconfortável.
Alguém que possa explicar essa situação?
Descobri que este é provavelmente um bug: link .