无法在LinuxMint上构建openssl-1.0.2n

时间:2018-01-11 23:02:34

标签: linux openssl linuxmint openvpn

我正在尝试更新 OpenVPN OpenSSL 。 在将openvpn更新为 openvpn-2.4.4 时,我需要先将openssl更新为最新的 openssl-1.0.2n

$ cd~
$ wget https://openvpn.net/index.php/download/openvpn-2.4.4.tar.gz
$ sudo tar -zvxf openvpn--2.4.4.tar.gz
$ cd openvpn-2.4.4
$ sudo ./configure
$ sudo make
$ sudo make install

但是当我达到./configure以上时,我遇到了传统openssl的问题,正如我之前提到的那样(我认为更新会解决这个问题)

checking tap-windows.h presence... no
checking for tap-windows.h... no
checking whether TUNSETPERSIST is declared... yes
checking for setcon in -lselinux... no
checking for pam_start in -lpam... no
checking for PKCS11_HELPER... no
checking for OPENSSL... no
checking for SSL_CTX_new... no
configure: error: openssl check failed

所以我尝试了以下命令来更新到最新的openssl:

$ cd /usr/src
$ wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz -O openssl-1.0.2n.tar.gz
$ tar -zxf openssl-1.0.2n.tar.gz
$ cd openssl-1.0.2n
$ ./config
$ sudo make
$ sudo make test
$ sudo make install
$ mv /usr/bin/openssl /root/
$ ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
$ openssl version

当我到达make test时,我遇到了编译错误。我在这里复制粘贴了我的终端输出,因为输出是巨大的,错误在底部:pastebin

我有什么建议可以解决这个问题吗?

RELEASE=18 sarah, EDITION=Cinnamon 32-bit, GRUB_TITLE=Linux Mint 18 Cinnamon 32-bit

1 个答案:

答案 0 :(得分:1)

根据您的输出判断,您需要将所有三个命令作为sudo运行,并且错过了最初的make

elliot@warmachine /usr/src/openssl-1.0.2n $ sudo ./config
...
elliot@warmachine /usr/src/openssl-1.0.2n $ make
...
/bin/sh: 1: cannot create buildinf.h: Permission denied
Makefile:58: recipe for target 'buildinf.h' failed

失败,因为它没有写入目录的权限,导致sudo make test失败,因为尚未构建openssl:

/usr/bin/ld: cannot find -lssl
collect2: error: ld returned 1 exit status

-l{library_name}ld用于链接外部库的内容,这意味着test无法找到应该在之前步骤中构建的openssl .so

最后,以root身份构建软件是不好的做法。我的建议是将其构建为非特权用户,然后以root身份安装。

$ cd ~
$ wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz -O openssl-1.0.2n.tar.gz
$ tar -zxf openssl-1.0.2n.tar.gz
$ cd openssl-1.0.2n
$ ./config
$ make
$ make test
$ sudo make install