web-dev-qa-db-ja.com

最新のopensslでソースの最新のApacheからコンパイルしようとしています-シンボル 'dlclose @@ GLIBC_2.2.5'への未定義の参照

Openssl 1.0.1iを使用してApache 2.4.10をインストールする必要があります。ソースからopensslをコンパイルしました:

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

およびApache

 ./ configure --prefix =/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-negotiation = 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 
(次にSudo make installを実行しますが、エラーが発生します)

私は本質的に次のとおりです ここのガイド 少し新しいバージョンを除いて。私の問題は、Apacheのmakeを実行するとリンカーエラーが発生することです。

すべてをサポートする
 make [1]:ディレクトリ `/home/developer/downloads/httpd-2.4.10/support 'を入力します/home/developer/downloads/httpd-2.4.10/support'
/usr/share/apr-1.0/build/libtool --silent --mode = link x86_64-linux-gnu-gcc -std = gnu99 -pthread -L/opt/openssl-1.0.1i/lib -lssl -lcrypto\
 -o ab ab.lo /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):への未定義の参照シンボル 'dlclose @@ GLIBC_2.2.5' 

ここの答え を試しましたが、運はありません。ただaptitudeを使用したいのですが、残念ながら必要なバージョンはまだ利用できません。リンカーの問題(またはリンカーの問題だと思う)の修正方法を知っている人、または新しいopensslを使用するようにApacheに指示するより良い方法を知っている人は大歓迎です。そうでなければ、Apache 1.0.1iが動作します。

2
AlexMA

修正しましたが、問題が何であったかは正確にはわかりません。私は2つのことを変更しました。

最初に、opensslの隣の孤独なディレクトリ(--prefix=/opt/httpd/)にインストールしました。これが違いを生むとは思いませんが、それを確認する時間はありません。

次に、aprとapr-utilのソースコードを使用してコンパイルしました(aptitudeから取得したコピー(開発バージョン)を使用する前に)。ソースツリーにaprおよびapr-utilソースコードを追加し、Apacheの--with-included-aprを実行したときに./configureオプションを使用しました。

ソースコードをソースツリーに追加する手順:

$ 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

Apacheを構成するために使用されるコマンド(簡潔にするため、他の有効なモジュールは省略されています):

$ ./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