【问题标题】:How do I install the OpenSSL libraries on Ubuntu?如何在 Ubuntu 上安装 OpenSSL 库?
【发布时间】:2011-03-02 07:28:03
【问题描述】:

我正在尝试在使用 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 包不包含该库。我在制作时收到这些错误:

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++ 和(在“链接选项”下)它指出:“链接器搜索库的标准目录列表......”和“搜索的目录包括几个标准系统目录..." 那些标准的系统目录是什么?

【问题讨论】:

  • 不完全重复,但由What are *-devel packages?回答。
  • 您对-dev 命名约定是正确的。您还可以使用 synaptic 包管理器列出名称包含 libssl 的所有包 - 浏览该列表及其描述可能会给您提供线索。
  • 我知道这个问题现在已经死了,但自从我最近发现它后,我认为其他人也可能会这样做。如果要列出与某个名称相似的所有包,我喜欢使用 >aptitude search 运行搜索不需要 root 权限级别。
  • 只是为了补充 Evan 的声明,最新版本的 Ubuntu 即将推出,但没有可用的 aptitude 命令。 apt-cache search 现在(几乎)以相同的方式工作。
  • 回答你的更新,你可以apt-cache search package-name

标签: c++ ubuntu installation openssl


【解决方案1】:

你要安装开发包,也就是libssl-dev:

sudo apt-get install libssl-dev

【讨论】:

【解决方案2】:

运行:

apt-get install libssl-dev

【讨论】:

    【解决方案3】:

    我怎么会想到 我自己(除了问这个 问题在这里)?我能以某种方式告诉 apt-get 列出所有包和 grep 对于ssl?或者我需要知道 “lib*-dev”命名约定?

    如果您与-lfoo 链接,那么库很可能是libfoo.so。库本身可能是libfoo 包的一部分,而标题在您发现的libfoo-dev 包中。

    有些人使用 GUI“突触”应用程序 (sudo synaptic) 来(定位和)安装软件包,但我更喜欢使用命令行。让从命令行更容易找到正确包的一件事是apt-get 支持 bash 完成。

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

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

    【讨论】:

    • Ubuntu 可以减轻人们的痛苦,因为它多年来一直是个问题。他们可以openssl-dev 别名为libssl-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 7 Apr 2014

    【讨论】:

    【解决方案5】:

    另一种在 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
    

    【讨论】:

      【解决方案6】:

      您想要openssl-devel 包。 至少我认为它是 Ubuntu 上的-devel。可能是-dev。这是两者之一。

      【讨论】:

      • sudo apt-get install openssl-devsudo apt-get install openssl-devel 都返回“E:找不到包...”
      • 显然它是 libssl-dev 正如其他人所说的那样。我不使用 Ubuntu,所以我不熟悉包名称。
      • Openssl-devel 是 CentOS 6 所需要的。sudo yum install openssl-devel*
      • 老实说:这个命名很烂:)
      • 好吧,这个命名很烂 :) - 但它仍然是我们可以拥有的最好的命名标准......但真的有人应该终于开始教学 世界上所有学校的学校主题“IT 基础”。
      【解决方案7】:

      作为一般规则,当您在 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
      

      【讨论】:

        【解决方案8】:
        1. 去官网下载你需要的版本的源码

        2. 然后解压更新包,执行如下命令

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

        因为默认是只生成静态库,如果要动态库,添加"shared"选项

        1. make &amp;&amp; make install

        【讨论】:

        • 每次make install,都会有一只小猫死去……如果您对仓库中的软件包不满意,最好使用checkinstall
        【解决方案9】:

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

        sudo apt install openssl
        

        【讨论】:

          【解决方案10】:

          sudo apt-get install libcurl4-openssl-dev

          【讨论】:

            猜你喜欢
            • 2011-03-10
            • 2018-07-24
            • 1970-01-01
            • 1970-01-01
            • 2011-07-21
            • 2017-09-06
            • 1970-01-01
            相关资源
            最近更新 更多