Как установить библиотеки OpenSSL на Ubuntu?

Я пытаюсь создать код на Ubuntu 10.04 LTS, который использует OpenSSL 1.0.0. Когда я запускаю make, он вызывает g++ с опцией "-ssl". Источник включает:

#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

Как установить библиотеку OpenSSL С++ на Ubuntu 10.04 LTS?

Я сделал man g++ и (в разделе "Опции для привязки" ) для параметра -l в нем указано: "Линкеров выполняет поиск стандартного списка каталогов для библиотеки..." и "Поиск каталогов включает несколько стандартных системные каталоги..." Каковы эти стандартные системные каталоги?

Ответ 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, как вы обнаружили.

Некоторые люди используют приложение "synaptic" с графическим интерфейсом (sudo synaptic) для (установки и) установки пакетов, но я предпочитаю использовать командную строку. Одна вещь, которая облегчает поиск нужного пакета из командной строки, заключается в том, что apt-get поддерживает завершение bash.

Попробуйте набрать sudo apt-get install libssl а затем нажмите tab, чтобы увидеть список совпадающих имен пакетов (это может помочь, когда вам нужно выбрать правильную версию пакета с несколькими версиями или другими доступными вариантами).

Завершение bash на самом деле очень полезно... например, вы также можете получить список команд, которые поддерживает apt-get, набрав sudo apt-get и нажав tab.

Ответ 4

Другой способ установить библиотеку openssl из исходного кода в Ubuntu, следуя инструкциям ниже, здесь 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

Ответ 5

Вам нужен пакет openssl-devel. По крайней мере, я думаю, что это -devel на Ubuntu. Может быть -dev. Это один из двух.

Ответ 6

Я нашел подробное решение здесь: вручную установить OpenSSL в 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

Или без судо,

$ make install

Это оно. OpenSSL был успешно установлен. Вы можете запустить команду версии, чтобы увидеть, работает ли она или нет, как показано ниже:

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

OpenSSL 1.0.1g 7 Apr 2014

Ответ 7

sudo apt-get install libcurl4-openssl-dev