web-dev-qa-db-fra.com

Essayer de compiler à partir de la dernière source Apache avec la dernière version d’openssl - référence non définie au symbole 'dlclose @@ GLIBC_2.2.5'

J'ai besoin d'installer Apache 2.4.10 en utilisant openssl 1.0.1i. J'ai compilé openssl à partir des sources avec:

 $ ./config\
 --prefix =/opt/openssl-1.0.1i\
 --openssldir =/opt/openssl-1.0.1i 
 $ make 
 $ Sudo make install 

et Apache avec:

 ./ configure - préfixe =/etc/Apache2\
 --enable-access_compat = shared\
 --enable-actions = shared\
 - enable-alias = shared\
 --enable-allowmethods = shared\
 --enable-auth_basic = shared\
 --enable-authn_core = shared\
 --enable-authn_file = shared\
 --enable-authz_core = shared\
 --enable-authz_groupfile = shared\
 --enable-authz_Host = shared\
 --enable-authz_user = shared\
 --enable-autoindex = shared\
 --enable-dir = shared\
 --enable-env = shared\
 --enable-headers = shared\
 --enable-include = shared\
 --enable-log_config = shared\
 --enable-mime = shared\
 --enable-négociation = shared\
 --enable-proxy = shared\
 --enable-proxy_http = shared\
 --enable-rewrite = shared\
 --enable-setenvif = shared\
 --enable-ssl = shared\
 - -enable-unixd = shared\
 --enable-ssl\
 --with-ssl =/opt/openssl-1.0.1i\
 --enable-ssl-staticlib -deps\
 --enable-mods-static = ssl 
 make 
 (exécuterait Sudo make install ensuite mais j'obtiendrais une erreur) 

Je suis essentiellement le guide ici sauf avec les nouvelles versions légèrement plus récentes. Mon problème est que je reçois une erreur de l'éditeur de liens quand je lance make pour Apache:

 Tout en soutien 
 Make [1]: Entrée du répertoire `/home/developer/downloads/httpd-2.4.10/support'[.____.premake[2]: Entrée du répertoire` /home/developer/downloads/httpd-2.4.10/support'
/usr/share/apr-1.0/build/libtool --silent --mode = lien x86_64-linux-gnu-gcc -std = gnu99 -pthread -L/opt/openssl-1.0.1i/lib -lssl -lcrypto\
 -o ab abolo /usr/lib/x86_64-linux-gnu/libaprutil-1.la/usr/lib/x86_64-linux-gnu/libapr-1.la -lm 
/usr/bin/ld: /opt/openssl-1.0.1i/lib/libcrypto.a(dso_dlfcn.o): référence non définie à symbole 'dlclose @@ GLIBC_2.2.5' 

J'ai essayé la réponse ici , mais pas de chance. Je préférerais simplement utiliser aptitude, mais malheureusement, les versions dont j'ai besoin ne sont pas encore disponibles. Si quelqu'un sait comment résoudre le problème de l'éditeur de liens (ou ce que je pense être un problème de l'éditeur de liens), ou connaît une meilleure façon de dire à Apache d'utiliser un plus récent fichier openssl, ce serait grandement apprécié; J'ai Apache 1.0.1i fonctionner autrement.

2
AlexMA

Résolu, mais je ne suis pas sûr du problème. J'ai changé deux choses:

Tout d'abord, j'ai installé dans un répertoire solitaire (--prefix=/opt/httpd/) à côté de openssl. Je ne pense pas que cela ait fait une différence, mais je n’ai pas le temps de le confirmer.

Deuxièmement, je l'ai compilé avec le code source apr et apr-util (avant de le laisser utiliser des copies d'aptitude, les versions dev). J'ai ajouté le code source apr et apr-util à l'arborescence des sources et utilisé l'option --with-included-apr lorsque j'ai exécuté ./configure d'Apache.

Étapes pour ajouter le code source à l'arbre source:

$ tar zxvf httpd-2.4.10.tar.gz
$ cd httpd-2.4.10/srclib/
$ tar zxvf ../../apr-1.5.1.tar.gz
$ ln -s apr-1.5.1/ apr
$ tar zxvf ../../apr-util-1.5.3.tar.gz
$ ln -s apr-util-1.5.3/ apr-util

Commande utilisée pour configurer Apache (avec d'autres modules activés omis pour plus de brièveté):

$ ./configure \
    --prefix=/opt/httpd \
    --with-included-apr \
    --enable-ssl \
    --with-ssl=/opt/openssl-1.0.1i \
    --enable-ssl-staticlib-deps \
    --enable-mods-static=ssl
1
AlexMA