首页 文章

如何在Ubuntu上安装OpenSSL库?

提问于
浏览
174

我正在尝试在使用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++ 和(在"Options for Linking"之下)它声明:" The linker searches a standard list of directories for the library..."和"The directories searched include several standard system directories..."这些标准系统目录是什么?

7 回答

  • 384

    你想要openssl-devel包 . 至少我认为它是关于Ubuntu的 . 可能是-dev . 这是两个中的一个 .

  • 4

    我在这里找到了一个详细的解决方案:Install OpenSSL Manually On Linux

    来自博客文章......:

    下载,编译和安装的步骤如下(我在下面安装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 install如下:$ make注意:检查是否有任何错误消息以进行验证 . 步骤-5:安装OpenSSL:$ sudo make install或者没有sudo,$ make install就是这样 . OpenSSL已成功安装 . 您可以运行version命令以查看它是否有效,如下所示:$ / usr / local / openssl / bin / openssl version OpenSSL 1.0.1g 2014年4月7日

  • 12

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

    sudo apt-get install libssl-dev
    
  • 3

    apt-get install libssl-dev

  • 2

    从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
    
  • -1

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

    如果您与 -lfoo 链接,则库可能是 libfoo.so . 库本身可能是 libfoo 包的一部分,并且 Headers 位于 libfoo-dev 包中,如您所发现的那样 .

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

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

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

  • 23

    sudo apt-get install libcurl4-openssl-dev

相关问题