2011-07-06 49 views
0

我在我的电脑上安装了openssl 0.9.8g ... 看来它有一个我遇到的已知的bug。如何使用最新的openssl更新?

我想安装当前版本1.0.0d,它似乎已修复了错误。

左右,基本安装:

$ ./config 
$ make 
$ sudo make install 

然而,即使重新编译后,我的软件,我仍然得到同样的错误,这是肯定的,从0.9.8未来,因为它是写在错误:

error:1408F06B:SSL routines:SSL3_GET_RECORD:bad decompression:/SourceCache/OpenSSL098/OpenSSL098-35/src/ssl/s3_pkt.c:438:

+0

是什么应用程序生产该应用程序静态链接?或者它可能是特别要求0.9.8 .so的。 –

+0

不是我所知道的,只是在编译时使用-lssl标志。 – TheSquad

回答

1

我们假设您已将您下载的OpenSSL版本安装到/home/yourname/openssl。然后,您需要告诉您的软件使用该定制安装,而不是已经存在于您的文件系统中的预打包0.9.8。没有必要卸载它,你可以在你的机器上进行多次安装。 “告诉”你的软件在哪里可以找到你的定制安装是通过提供链接器的正确路径来找到libssl和libcrypto。将这些添加到您的Makefile中的链接选项:

-L/home/yourname/openssl/lib -Wl,-R/home/yourname/openssl/lib 

然后它应该链接到新版本就好了。为了验证它没有,你可以使用

ldd <your_executable_or_library> 

和验证自定义OpenSSL的路径列在其中,而不是旧的。

0

我不确定您使用的操作系统,但我的猜测是您在安装新版本之前必须首先删除错误的旧版本。一些操作系统不会将与sudo make install一起安装的库与包管理器放在同一位置。此外,库的查找顺序可能会导致它加载较旧的一个。

+0

使用debian sarge ...我会尝试,但是,如何卸载以前版本的openssl? – TheSquad

+0

'sudo apt-get remove openssl'应该做我认为的诡计。 – Constantinius

+0

nope,我已经从他们的网站下载的源代码安装openssl ...不apt-get(当时也需要最新版本) – TheSquad

相关问题