在 Ubuntu 14.04 上安装 Qt 5.5.1 - 在终端上抛出 qt.network.ssl 错误

use*_*345 10 qt qt5 14.04

我打算在虚拟机上运行的 ubuntu 14.04 上安装 qt 5.5.1。我已经从 qt-io 下载了安装程序,当我尝试安装安装程序时,我注意到终端上出现以下警告,然后安装程序弹出。

qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method
Run Code Online (Sandbox Code Playgroud)

我需要担心这个警告吗?当我在同一台机器上安装 qt 5.3.1 时,我没有看到任何此类错误。

有没有办法解决这个警告?任何帮助表示赞赏。谢谢。

这是我机器上当前版本的 openSSL。

openssl version -v
OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)

Tun*_*ran 11

现在 Ubuntu 中的 OpenSSL 编译时没有使用 sslv2,因为它不安全,但 Qt 5.5.x 仍然需要它。为了启用 sslv2,需要在没有 no-sslv2 标志的情况下重新配置包。

安装必备软件包

sudo apt-get update
sudo apt-get install libssl-dev devscripts dpkg-dev cdbs debhelper dh-autoreconf libev-dev libpcre3-dev pkg-config
Run Code Online (Sandbox Code Playgroud)

然后,获取源

cd ~/Downloads
sudo apt-get update
apt-get source openssl
Run Code Online (Sandbox Code Playgroud)

现在我们需要编辑 openssl-1.0.1f/debian/rules 中的文件。找到第 44 行(可能不同版本的行号会有所不同)并删除no-ssl2,使其如下所示:

cd openssl-1.0.1f
nano debian/rules
CONFARGS  = --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 no-zlib  enable-tlsext no-ssl3 enable-unit-test $(ARCH_CONFARGS)
Run Code Online (Sandbox Code Playgroud)

接下来,我们将添加评论并提交更改。然后重新构建包,这将需要一些时间,所以跳到 nmap 部分并下载源代码。您可能会收到一些错误,提示无法验证版权,请忽略它。此外,编译可能需要一段时间,所以请耐心等待。

dch –n 'Allow SSLv2'
dpkg-source --commit
debuild -uc -us
Run Code Online (Sandbox Code Playgroud)

现在回到~/Downloads您将看到所有构建的 deb 包。安装它们:

cd ..
sudo dpkg -i *ssl*.deb
Run Code Online (Sandbox Code Playgroud)

现在重做 Qt 5.5.1 安装以查看警告是否仍然存在。