如何在Ubuntu上安装OpenSSL库?

我试图在使用OpenSSL 1.0.0的Ubuntu 10.04 LTS上构build一些代码。 当我运行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包不包括库。 我得到这些错误:

 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 ++库?

我做了一个man g++和(在“选项链接”)为-l选项它指出:“链接器search库的目录的标准列表…”和“search目录包括几个标准系统目录.. 。“那些标准的系统目录是什么?

你想安装开发包,这是libssl-dev:

 sudo apt-get install libssl-dev 

apt-get install libssl-dev

我怎么能为自己弄明白(除了在这里问这个问题)? 我可以不知何故告诉apt-get列出所有的软件包,和grep的SSL? 或者我需要知道“lib * -dev”命名约定?

如果你用-lfoo链接,那么这个库可能是libfoo.so 。 库本身可能是libfoo包的一部分,头文件在libfoo-dev包中,正如你发现的那样。

有些人使用gui“synaptic”应用程序( sudo synaptic )来(查找和)安装软件包,但我更喜欢使用命令行。 有一件事情使得从命令行find正确的包变得更容易,因为apt-get支持bash完成。

尝试inputsudo apt-get install libssl ,然后点击“tab”查看匹配的软件包名称列表(当需要select具有多个版本或其他可用变体的软件包的正确版本时,可以提供帮助)。

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

你需要openssl-devel软件包。 至less我认为这是在Ubuntu上的破解。 可能是-dev。 这是两个之一。

在Ubuntu上从源代码安装openssl库的另一种方法,按照下面的步骤,在这里WORKDIR是你的工作目录:

  1. sudo apt-get install pkg-config
  2. CD WORKDIR
  3. git clone https://github.com/openssl/openssl.git
  4. CD openssl
  5. ./config中
  6. 使
  7. sudo make install
  8. 打开文件/etc/ld.so.conf,在EOF处添加一行:“/ usr / local / lib”
  9. sudo ldconfig