当前位置: 首页>>技术教程>>正文


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

最佳解决办法

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

sudo apt-get install libssl-dev

次佳解决办法

apt-get install libssl-dev

第三种解决办法

How could I have figured that out for myself (other than asking this question here)? Can I somehow tell apt-get to list all packages, and grep for ssl? Or do I need to know the “lib*-dev” naming convention?

如果您要与-lfoo链接,那么该库可能是libfoo.so。库本身可能是libfoo软件包的一部分,并且标头位于您发现的libfoo-dev软件包中。

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

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

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

第四种办法

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

来自博客文章……:

Steps to download, compile, and install are as follows (I’m installing version 1.0.1g below; please replace “1.0.1g” with your version number):

Step – 1 : Downloading OpenSSL:

Run the command as below :

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

Also, download the MD5 hash to verify the integrity of the downloaded file for just varifacation purpose. In the same folder where you have downloaded the OpenSSL file from the website :

$ 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

Step – 2 : Extract files from the downloaded package:

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

Now, enter the directory where the package is extracted like here is openssl-1.0.1g

$ cd openssl-1.0.1g

Step – 3 : Configuration OpenSSL

Run below command with optional condition to set prefix and directory where you want to copy files and folder.

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

You can replace “/usr/local/openssl” with the directory path where you want to copy the files and folders. But make sure while doing this steps check for any error message on terminal.

Step – 4 : Compiling OpenSSL

To compile openssl you will need to run 2 command : make, make install as below :

$ make

Note: check for any error message for verification purpose.

Step -5 : Installing OpenSSL:

$ sudo make install

Or without sudo,

$ make install

That’s it. OpenSSL has been successfully installed. You can run the version command to see if it worked or not as below :

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

OpenSSL 1.0.1g 7 Apr 2014

第五种办法

从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

第六种办法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7120.html,未经允许,请勿转载。