Substituindo o local de pesquisa padrão da biblioteca no Ubuntu 12.04.1

2

Para compilar corretamente a biblioteca mpfr no meu sistema Ubuntu 12.04.1 (64 bits), eu preciso atualizar as variáveis C_INCLUDE_PATH , LIBRARY_PATH , LD_LIBRARY_PATH e LD_RUN_PATH . Isso é mencionado na FAQ para criar a biblioteca mpfr . A atualização dessas variáveis é necessária, pois a biblioteca gmp já está nos caminhos de pesquisa e é incluída como parte da instalação padrão do Ubuntu. No entanto, instalei a biblioteca gmp no meu diretório /usr/local/lib .

No meu diretório inicial, criei um arquivo .pam_environment e coloquei as seguintes linhas:

export C_INCLUDE_PATH=/usr/local/include:$C_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_RUN_PATH=/usr/local/lib:$LD_RUN_PATH 

No entanto, o script mpfr library configure ainda não consegue encontrar minha própria versão da biblioteca gmp no diretório /usr/local/lib .

Olhando dentro do diretório /etc/ld.so.conf.d , o conteúdo do meu arquivo libc.conf é:

# libc default configuration
/usr/local/lib

Além disso, o conteúdo do arquivo x86_64-linux-gnu.conf é:

# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

No entanto, executar locate libgmp na linha de comando mostra que já existe uma versão do libgmp que vem com o sistema.

$ locate libgmp
/usr/lib/x86_64-linux-gnu/libgmp.so.10
/usr/lib/x86_64-linux-gnu/libgmp.so.10.0.2
/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so
/usr/share/doc/libgmp10
/usr/share/doc/libgmp10/README.Debian
/usr/share/doc/libgmp10/TODO.Debian
/usr/share/doc/libgmp10/changelog.Debian.gz
/usr/share/doc/libgmp10/copyright
/var/lib/dpkg/info/libgmp10:amd64.list
/var/lib/dpkg/info/libgmp10:amd64.md5sums
/var/lib/dpkg/info/libgmp10:amd64.postinst
/var/lib/dpkg/info/libgmp10:amd64.postrm
/var/lib/dpkg/info/libgmp10:amd64.shlibs

Perguntas:

  1. Como faço para substituir o local da versão libgmp usada durante a vinculação? Eu gostaria de usar a biblioteca no diretório \usr\local\lib .
  2. Coloco o C_INCLUDE_PATH e outras variáveis no meu arquivo .pam_environment ou existe um local mais apropriado?
por Nicholas Kinar 12.12.2012 / 19:21

1 resposta

2

A solução mais simples para este problema parece estar instalando a biblioteca em outro local:

./configure --prefix=/home/usr/local

Em seguida, a biblioteca nesse diretório é selecionada ao vincular. Outra possibilidade seria renomear /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so para outra coisa, mas isso não é especialmente inteligente se a biblioteca for usada por um programa instalado no sistema.

    
por Nicholas Kinar 12.12.2012 / 22:33