web-dev-qa-db-fra.com

Remplacement de l'emplacement de recherche par défaut pour la bibliothèque sur Ubuntu 12.04.1

Pour compiler correctement la bibliothèque mpfr sur mon système Ubuntu 12.04.1 (64 bits), je dois mettre à jour les variables C_INCLUDE_PATH, LIBRARY_PATH, LD_LIBRARY_PATH et LD_RUN_PATH. Ceci est mentionné dans FAQ pour la construction de la bibliothèque mpfr. La mise à jour de ces variables est nécessaire car la bibliothèque gmp est déjà sur les chemins de recherche et incluse dans l'installation par défaut d'Ubuntu. Cependant, j'ai installé la bibliothèque gmp dans mon répertoire /usr/local/lib.

Dans mon répertoire personnel, j'ai créé un fichier .pam_environment et placé les lignes suivantes:

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 

Cependant, le script mpfr library configure ne trouve toujours pas ma propre version de la bibliothèque gmp dans le répertoire /usr/local/lib.

Dans le répertoire /etc/ld.so.conf.d, le contenu de mon fichier libc.conf est le suivant:

# libc default configuration
/usr/local/lib

En outre, le contenu du fichier x86_64-linux-gnu.conf est le suivant:

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

Cependant, l'exécution de locate libgmp sur la ligne de commande indique qu'il existe déjà une version de libgmp livrée avec le système.

$ 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

Des questions:

  1. Comment remplacer l'emplacement de la version libgmp utilisée lors de la liaison? J'aimerais utiliser la bibliothèque du répertoire \usr\local\lib.
  2. Dois-je placer le C_INCLUDE_PATH et d’autres variables dans mon fichier .pam_environment ou existe-t-il un emplacement plus approprié?
2
Nicholas Kinar

La solution la plus simple à ce problème semble être d'installer la bibliothèque à un autre emplacement:

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

Ensuite, la bibliothèque dans ce répertoire est sélectionnée lors de la liaison. Une autre possibilité serait de renommer /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so en quelque chose d'autre, mais cela n'est pas particulièrement intelligent si la bibliothèque est utilisée par un programme installé sur le système.

2
Nicholas Kinar