Mint: maneira correta de instalar o /lib/i386-linux-gnu/libgmp.so.3

1

Eu tenho um binário de 32 bits que precisa do libgmp.so.3 em uma instalação x86_64.

O modo de trapaça seria copiar o libgmp.so.3 de uma instalação do i386 e colocá-lo em / lib / i386-linux-gnu /. Mas qual é a maneira correta de instalar uma libgmp.so.3 de 32 bits em uma instalação de 64 bits?

Eu tentei aptitude install ia32-libs e, embora isso instale muitas bibliotecas de 32 bits, ele não instala libgmp.so.3.

uname -a diz:

Linux aspire 3.8.0-35-lowlatency #27-Ubuntu SMP PREEMPT Tue Dec 10 05:05:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ apt-file search libgmp.so
lib32gmp-dev: /usr/lib32/libgmp.so
lib32gmp10: /usr/lib32/libgmp.so.10
lib32gmp10: /usr/lib32/libgmp.so.10.0.5
libgmp-dev: /usr/lib/x86_64-linux-gnu/libgmp.so
libgmp10: /usr/lib/x86_64-linux-gnu/libgmp.so.10
libgmp10: /usr/lib/x86_64-linux-gnu/libgmp.so.10.0.5
libssl0.9.8: /usr/lib/x86_64-linux-gnu/ssl/engines/libgmp.so
libssl0.9.8-dbg: /usr/lib/debug/usr/lib/x86_64-linux-gnu/ssl/engines/libgmp.so
libssl1.0.0: /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so
libssl1.0.0-dbg: /usr/lib/debug/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so

$ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 15 Olivia
Release:        15
Codename:       olivia
    
por Ole Tange 15.03.2014 / 10:06

1 resposta

1

Se você quiser descobrir qual pacote contém um arquivo específico, use apt-file . Se você deseja procurar arquivos para uma arquitetura diferente, você tem que usar a opção -a , primeiro para criar / atualizar o cache para aquela arquitetura (a atualização normal somente cria / atualiza o cache padrão) e então ao pesquisar. Você pode tentar:

sudo apt-file -a i386 update
apt-file -a i386 search /lib/i386-linux-gnu/libgmp.so.3

Isso deve informar o pacote correto a ser instalado. Se o i386 não estiver habilitado para o seu sistema, você terá que ativá-lo. Você deve poder verificar com:

dpkg --print-foreign-architectures

Se i386 não estiver listado, você poderá adicioná-lo com:

sudo dpkg --add-architecture i386

O acima deve funcionar para versões mais recentes do Ubuntu, mas para versões mais antigas, você pode ter que fazer:

sudo dpkg --foreign-architecture i386

Após adicionar, atualize as listas de pacotes:

sudo apt-get update

Em seguida, você poderá instalar o pacote encontrado em sua pesquisa apt-file desta forma:

sudo apt-get install libwhatever:i386

Se apt-file não encontrar nada, isso pode significar que a biblioteca é instalada em um local diferente. Você poderia tentar:

apt-file -a i386 search libgmp.so.3

Em seguida, instale o pacote que encontrar. Se você fizer isso e o seu programa ainda não funcionar, você pode tentar fazer o symlinking /lib/i386-linux-gnu/libgmp.so.3 para onde quer que ele instale. Caso contrário, se apt-file não encontrar nada, provavelmente significa que não há nenhum pacote que contenha essa versão da biblioteca nos repositórios. Você poderia, então, procurar por um pacote de uma versão diferente do Mint / Ubuntu (ou os backports para o seu lançamento podem ser um bom lugar para começar a procurar se a versão do release for mais antiga). Se você está realmente preso, você teria que cross-compilar e instalar a partir do código-fonte.

Atualizar

Sua saída apt-file mostra sua distro libgmp package é libgmp10 , que contém libgmp.so.10 . Como você está procurando por libgmp.so.3 , não há prêmios para adivinhar que essa é uma versão mais antiga. Não adianta olhar nos backports, pois isso é para pacotes mais novos.

Uma pesquisa no link mostra que há libgmp3 no Ubuntu 12.04. A página do pacote com links para a lista de arquivos está aqui - link . Instalar o pacote de 32 bits no Ubuntu / Mint de 64 bits colocará os arquivos em lugares diferentes (bibliotecas em /lib/i386-linux-gnu . Você pode baixá-lo aqui - link

Normalmente, isso pode ser problemático devido a possíveis conflitos, mas como o pacote tem um nome diferente, ele não deve entrar em conflito com nenhum libgmp atual. Ele também tem apenas uma dependência em libc6 , que é a mesma do Ubuntu 13.04 (a base para Olivia). Haverá uma versão secundária diferente, que pode causar alguns bugs estranhos, mas provavelmente você ficará bem.

Você pode instalar como:

sudo dpkg -i dir/downloaded_package.deb

Você também pode precisar instalar a versão i386 de libc6 se ainda não a tiver:

sudo apt-get install libc6:i386
    
por 16.03.2014 / 13:49