如何在Ubuntu上安装OpenSSL库?

Dar*_*zer 214 c++ installation 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>
Run Code Online (Sandbox Code Playgroud)

我跑了:

$ 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.
Run Code Online (Sandbox Code Playgroud)

但我想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
Run Code Online (Sandbox Code Playgroud)

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

man g++为-l选项做了一个和(在"链接选项"下),它指出:"链接器搜索库的标准目录列表......"和"搜索的目录包括几个标准系统目录......"那些标准系统目录是什么?

Nik*_*chi 447

您想要安装开发包,它是libssl-dev:

sudo apt-get install libssl-dev
Run Code Online (Sandbox Code Playgroud)

  • 用于新发行版 ubuntu 的 `apt install` (2认同)

Jes*_*les 29

所有这些答案都非常过时,并且从包仍在开发的时候开始。您现在可以使用下面列出的“正常”命令:

sudo apt install openssl
Run Code Online (Sandbox Code Playgroud)

编辑:OP的问题措辞不好......毕竟,OpenSSL本身就是一个库,所以我在回答之前太快地阅读了他的问题。上面的命令安装“普通”OpenSSL。

在问题的底部,他提到make失败了,这表明他正在手动编译该包。是的,即使您下载了 TAR 球,它也会包含所有的openssllibssl文件,您可以从中make获取。

OP真正需要的是OpenSSL Development Library,在这种情况下,您可以首先使用上述命令安装 OpenSSL,然后运行以下命令:

sudo apt install libssl-dev
Run Code Online (Sandbox Code Playgroud)

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

  • 顺便说一句,这是一个错误的答案 (3认同)
  • 如果这个答案能让我获得 1000+ 业力,我会哈哈 (2认同)

Yan*_*min 26

apt-get install libssl-dev


小智 14

我怎么能为自己想出这个(除了在这里问这个问题)?我可以告诉apt-get列出所有包,grep for ssl吗?或者我是否需要知道"lib*-dev"命名约定?

如果您正在链接,-lfoo则可能是库libfoo.so.库本身可能是libfoo包的一部分,并且标头在libfoo-dev您发现的包中.

有些人使用GUI"synaptic"app(sudo synaptic)来定位和安装软件包,但我更喜欢使用命令行.从命令行中找到正确的包更容易的一件事是apt-get支持bash完成的事实.

尝试键入sudo apt-get install libssl然后点击tab以查看匹配的软件包名称列表(当您需要选择具有多个版本或其他可用变体的软件包的正确版本时,这可能会有所帮助).

Bash完成实际上非常有用...例如,您还可以apt-get通过键入sudo apt-get然后点击来获取支持的命令列表tab.


小智 6

在 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
Run Code Online (Sandbox Code Playgroud)


小智 5

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

从博客文章...:

下载,编译和安装的步骤如下(我正在安装以下版本1.0.1g;请用您的版本号替换“ 1.0.1g”):

步骤1:下载OpenSSL:

运行以下命令:

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

同样,下载MD5哈希值以仅出于分类目的验证下载文件的完整性。在您从网站下载OpenSSL文件的文件夹中:

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

步骤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

注意:检查是否有任何错误消息以供验证。

步骤-5:安装OpenSSL:

$ sudo make install

或没有须藤,

$ make install

而已。OpenSSL已成功安装。您可以运行version命令,以查看它是否有效,如下所示:

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

OpenSSL 1.0.1g 7 Apr 2014

  • 截至 2022 年 12 月最新 openssl 版本的“wget http://www.openssl.org/source/openssl-3.0.7.ta​​r.gz” (2认同)