Невозможно собрать openssl-1.0.2n на LinuxMint
Я пытаюсь обновить свои 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 ответ
Судя по вашему выводу, вам нужно запустить все три команды как 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