我正在尝试更新 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
答案 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