Diferença entre instalar libx: i386 e lib32x

4

Há uma série de libs disponíveis nos repositórios do Ubuntu como lib32stdc++6 e lib32ncurses5 . Você pode instalá-los em um sistema de 64 bits ou instalar libstdc++6:i386 e libncurses5:i386 . Estou interessado em saber qual é a diferença entre os dois tipos de pacotes.

Qual é a diferença real? Por que ambos estão disponíveis? Tendo a impressão de que libx:i386 é a nova maneira de fazer as coisas, esse método sempre prefere a instalação da variante lib32x ? Ter um par de lib32x e um par de libx:i386 bibliotecas já instaladas também me faz pensar se seria uma boa idéia mudar para apenas um tipo de pacote substituindo-as por suas contrapartes.

    
por Forage 14.07.2013 / 00:37

1 resposta

2

A diferença prática entre esses pacotes é onde as bibliotecas estão localizadas. Com libfoo:i386 , as bibliotecas acabam em caminhos multiarch como /usr/lib/i386-linux-gnu , enquanto que com lib32foo:amd64 bibliotecas acabam nos caminhos "antigos", como /usr/lib32 . Num futuro distante, nos livraríamos de qualquer pacote lib32foo , mas ainda não chegamos lá. Pelo menos lib32stdc++6 é necessário para construir gcc-X.Y no momento, porque ele constrói gcc-X.Y-multilib , que é capaz de suportar comutadores como -m32 para selecionar a arquitetura de destino (isto é, a arquitetura do binário resultante). Sem os pacotes lib32foo , as dependências de compilação de gcc-X.Y cruzariam os limites da arquitetura e isso ainda não é suportado. Existem mais alguns problemas que exigem manter os pacotes lib32foo por um tempo.

    
por Helmut Grohne 21.07.2013 / 17:31