如何在Ubuntu上安装OpenSSL库?

我试图在使用OpenSSL 1.0.0的Ubuntu 10.04 LTS上构建一些代码。当我运行make时,它使用“-lssl”选项调用g++。资料来源包括:

#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>

我跑:

$ sudo apt-get install openssl
Reading package lists... Done
Building dependency tree
Reading state information... Done
openssl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

但是我猜openssl包不包括这个库。我在make时得到这些错误:

foo.cpp:21:25: error: openssl/bio.h: No such file or directory
foo.cpp:22:28: error: openssl/buffer.h: No such file or directory
foo.cpp:23:25: error: openssl/des.h: No such file or directory
foo.cpp:24:25: error: openssl/evp.h: No such file or directory
foo.cpp:25:25: error: openssl/pem.h: No such file or directory
foo.cpp:26:25: error: openssl/rsa.h: No such file or directory

如何在Ubuntu 10.04 LTS上安装OpenSSL c++库?

我为-l选项做了man g++和(在“链接选项”下),它声明:“链接器为库搜索标准目录列表…”和“搜索的目录包括几个标准系统目录…”这些标准系统目录是什么?

671422 次浏览
你需要openssl-devel包。 至少我认为它在Ubuntu上是-devel。可能是-dev。它是两者之一

您需要安装开发包,即libssl-dev:

sudo apt-get install libssl-dev

运行:

apt-get install libssl-dev

我怎么能算出来 我自己(除了问这个 问题)?我能不能告诉你 Apt-get列出所有包,以及grep . get ssl ?还是我需要知道 “lib*-dev”命名规范?< / p >

如果你链接到-lfoo,那么库很可能是libfoo.so。该库本身可能是libfoo包的一部分,并且正如你所发现的,头文件在libfoo-dev包中。

有些人使用GUI“synaptic”应用程序(sudo synaptic)来(定位和)安装包,但我更喜欢使用命令行。更容易从命令行找到正确的包的一个原因是apt-get支持bash补全。

试着输入sudo apt-get install libssl,然后点击选项卡来查看匹配的包名列表(当你需要选择有多个版本或其他可用变体的包的正确版本时,这可以帮助你)。

Bash补全实际上非常有用…例如,你也可以通过输入sudo apt-get,然后点击选项卡来获得apt-get支持的命令列表。

在Ubuntu上从源代码安装openssl库的另一种方法,如下所示,其中WORKDIR是你的工作目录:

sudo apt-get install pkg-config
cd WORKDIR
git clone https://github.com/openssl/openssl.git
cd openssl
./config
make
sudo make install
# Open file /etc/ld.so.conf, add a new line: "/usr/local/lib" at EOF
sudo ldconfig

我在这里找到了一个详细的解决方案:在Linux上手动安装OpenSSL

从博客文章中…

下载、编译和安装的步骤如下(我安装的是1.0.1g版本;请将“1.0.1g”替换为您的版本号):

步骤- 1:下载OpenSSL:

运行命令如下所示:

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz

此外,下载MD5散列来验证所下载文件的完整性,仅用于变体目的。在你从网站下载OpenSSL文件的文件夹内:

< p > $ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz.md5 < br > $ md5sum openssl-1.0.1g.tar.gz < br > $ cat openssl-1.0.1g.tar.gz.md5 < / p >

步骤- 2:从下载的包中解压缩文件:

$ tar -xvzf openssl-1.0.1g.tar.gz

现在,进入解压包的目录,比如这里是openssl-1.0.1g

$ cd openssl-1.0.1g

步骤3:配置OpenSSL

带可选条件运行以下命令来设置要复制文件和文件夹的前缀和目录。

$ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

可以将“/usr/local/openssl”替换为要复制文件和文件夹的目录路径。但确保在执行这些步骤时检查终端上的任何错误消息。

步骤4:编译OpenSSL

要编译openssl,你需要运行2个命令:make, make install,如下所示:

$ make

注意:为了验证目的,检查任何错误消息。

步骤-5:安装OpenSSL:

$ sudo make install

或者没有sudo,

$ make install

就是这样。已成功安装OpenSSL。您可以运行version命令查看它是否工作,如下所示:

$ /usr/local/openssl/bin/openssl version

OpenSSL 1.0.1g 7 Apr 2014

sudo apt-get install libcurl4-openssl-dev

作为一般规则,当在Debian或Ubuntu上,你缺少一个开发文件(或任何其他文件)时,使用apt-file来找出哪个包提供了该文件:

~ apt-file search openssl/bio.h
android-libboringssl-dev: /usr/include/android/openssl/bio.h
libssl-dev: /usr/include/openssl/bio.h
libwolfssl-dev: /usr/include/cyassl/openssl/bio.h
libwolfssl-dev: /usr/include/wolfssl/openssl/bio.h

快速浏览命令返回的每个包,使用apt show将告诉你哪个包是你正在寻找的包:

~ apt show libssl-dev
Package: libssl-dev
Version: 1.1.1d-2
Priority: optional
Section: libdevel
Source: openssl
Maintainer: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Installed-Size: 8,095 kB
Depends: libssl1.1 (= 1.1.1d-2)
Suggests: libssl-doc
Conflicts: libssl1.0-dev
Homepage: https://www.openssl.org/
Tag: devel::lang:c, devel::library, implemented-in::TODO, implemented-in::c,
protocol::ssl, role::devel-lib, security::cryptography
Download-Size: 1,797 kB
APT-Sources: http://ftp.fr.debian.org/debian unstable/main amd64 Packages
Description: Secure Sockets Layer toolkit - development files
This package is part of the OpenSSL project's implementation of the SSL
and TLS cryptographic protocols for secure communication over the
Internet.
.
It contains development libraries, header files, and manpages for libssl
and libcrypto.


N: There is 1 additional record. Please use the '-a' switch to see it
  1. 请到官方网站下载对应版本的源代码

  2. 然后解压升级包,执行以下命令

    ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl  -Wl,-rpath,/usr/local/ssl/lib shared
    

因为默认只生成静态库,如果你想要动态库,可以添加“shared"选项

  1. make && make install

所有这些答案都是非常过时的,来自于软件包仍在开发的时候。你现在可以用“normal”;命令如下所示:

sudo apt install openssl

编辑:OP的问题措辞很糟糕…毕竟,OpenSSL本身就是一个库,所以我在回答他的问题之前看得太快了。上面的命令安装“;normal"OpenSSL。

在他的问题的底部,他提到make失败了,这表明他正在手动编译包。是的,即使你下载TAR球,它将包括所有的openssllibssl文件,然后你可以从它们make

OP真正要求的是OpenSSL开发库,在这种情况下,你可以先使用上面的命令安装OpenSSL,然后运行这个:

sudo apt install libssl-dev

更多信息:https://linuxtect.com/how-to-install-openssl-libraries-on-ubuntu-debian-mint/