在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)

    OpenSSL 1.1.1 正式版于 2018 年 9 月发布了,在官网 https://www.openssl.org 上已提供了文件 openssl-1.1.1.tar.gz 的下载。为了尝试在 64 位的 CentOS 6.9 上编译源文件,先用以下命令查看一下 GCC 的版本:
gcc --versin
    结果为 4.4.7。再用以下命令查看一下 Perl 的版本:
perl --version
    结果为 5.10.1
    GCC 和 Perl 的版本符合编译 1.1.1 版的基本要求,可以开始编译。由于想将编译好的文件放到 /usr/local/openssl-1.1.1 路径下,依次执行以下命令:
mkdir /usr/local/openssl-1.1.1
./config --prefix=/usr/local/openssl-1.1.1
make
make test
    结果执行到 make test 这一步时报错了,错误提示为:Can't locate Test/Harness.pm in @INC
    该错误与 Perl 有关,执行以下命令安装相关的 Perl 模块“Text::Harness”:
yum install perl-Test-Harness
    执行以下命令重新编译:
make clean
make
    又报错了,提示如下:Parse errors: No plan found in TAP output
    执行以下命令下载安装 Perl 模块“TAP”:
wget  http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/p/perl-TAP-Harness-JUnit-0.36-1.el6.noarch.rpm
rpm  -ivh  perl-TAP-Harness-JUnit-0.36-1.el6.noarch.rpm
    结果还是报错,说明解决问题的方法不对。阅读 OpenSSL 压缩包文件中包含的说明文件 INSTALL, NOTES.UNIX, NOTES.PERL 之后,才知道应该通过 CPAN 工具安装 Perl 模块“Text::Template”,依次执行以下命令:
yum  install  perl-CPAN
perl  -MCPAN  -e  shell
    这时 CPAN 将显示一些提示,告诉用户将做一些配置,如下图所示:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第1张图片
    凡是遇到询问都直接敲字母键 y 表示同意,完成安装 CPAN 以后,执行命令:
perl  -MCPAN  -e  shell
    在 cpan[1]> 命令行提示符后面输入命令 install Text::Template ,如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第2张图片
    接下来会询问是否做一些操作,遇到询问时一律按字母键 y 表示同意,如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第3张图片
    安装完成后,键入 exit 退出 cpan 命令行,如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第4张图片
    执行以下命令重新编译 OpenSSL:
make clean
make
    再次执行 make test 命令,发现可以通过大部分测试,如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第5张图片
    最后的测试结论是有一项错误出现,如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第6张图片
    用 vim 打开 ../test/recipes/04-test_err.t 错误记录文件,内容如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第7张图片
    从文件中没看到对出现错误的描述。先忽略这个错误,继续进行,接下来执行以下命令:

make install

    在安装过程完成以后,依次执行以下命令测试一下:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl-1.1.1/lib
cd /usr/local/openssl-1.1.1/bin
./openssl

    将会显示 “OpenSSL>” 命令行提示符,可以使用 version 命令查看版本号,使用 help 命令查看帮助,使用 q 命令退出,如下图:

在 64 位 CentOS 6.9上编译 OpenSSL 1.1.1 (1)_第8张图片

    可以看出该 OpenSSL 的版本确实是 1.1.1。编译过程中有一个遗憾就是执行 make test 时有一项报错,原因及解决办法未能找到。

你可能感兴趣的:(OpenSSL)