Ответ 1
Вы хотите установить пакет разработки, который является libssl-dev:
sudo apt-get install libssl-dev
Я пытаюсь создать код на 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 в нем указано: "Линкеров выполняет поиск стандартного списка каталогов для библиотеки..." и "Поиск каталогов включает несколько стандартных системные каталоги..." Каковы эти стандартные системные каталоги?
Вы хотите установить пакет разработки, который является 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
, как вы обнаружили.
Некоторые люди используют приложение "synaptic" с графическим интерфейсом (sudo synaptic
) для (установки и) установки пакетов, но я предпочитаю использовать командную строку. Одна вещь, которая облегчает поиск нужного пакета из командной строки, заключается в том, что apt-get
поддерживает завершение bash.
Попробуйте набрать sudo apt-get install libssl
а затем нажмите tab, чтобы увидеть список совпадающих имен пакетов (это может помочь, когда вам нужно выбрать правильную версию пакета с несколькими версиями или другими доступными вариантами).
Завершение bash на самом деле очень полезно... например, вы также можете получить список команд, которые поддерживает apt-get
, набрав sudo apt-get
и нажав tab.
Другой способ установить библиотеку 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
Вам нужен пакет openssl-devel
. По крайней мере, я думаю, что это -devel
на Ubuntu. Может быть -dev
. Это один из двух.
Я нашел подробное решение здесь: вручную установить 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
sudo apt-get install libcurl4-openssl-dev