2010-06-10 3 views
150

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

#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 

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

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

+1

Не совсем дубликат, но ответил [Что такое пакеты -devel?] (http://stackoverflow.com/questions/2358801/what-are-devel-packages). – Troubadour

+0

Вы правы в соглашении об именовании '-dev'. Вы также можете использовать диспетчер пакетов synaptic для перечисления всех пакетов, имена которых содержат libssl - просмотр этого списка и их описания, скорее всего, даст вам ключ. – crazyscot

+1

Я знаю, что этот вопрос уже совсем мертв, но с тех пор, как я недавно нашел его, я полагаю, что кто-то еще может тоже. Если вы хотите перечислить все пакеты, похожие на определенное имя, мне нравится использовать поиск> aptitude Он не требует уровня привилегий root для запуска поиска. –

ответ

324

Вы хотите установить пакет разработки, который libssl-Dev:

sudo apt-get install libssl-dev 
+1

Но это не тот вариант, который он хотел (1.0.0), который не упакован для 10.04. См. Этот ответ для 1.0.0: http://stackoverflow.com/questions/3153114/how-do-i-install-and-build-against-openssl-1-0-0-on-ubuntu – nealmcb

+0

А, хороший звонок , В то время я заметил, что он пытался использовать библиотеки разработки, но не устанавливал пакет -dev. Я даже не заметил номер версии. –

4

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

+0

И «sudo apt-get install openssl-dev» и 'sudo apt-get install openssl-devel' return» E: Не удалось найти пакет ... " –

+6

Видимо, это libssl-dev, как говорили другие. Я не использую Ubuntu, поэтому я не знаком с именами пакетов. – jonescb

+6

Openssl-devel был тем, что мне нужно для CentOS 6. 'sudo yum install openssl-devel *' – Banjer

11

Как я мог бы понял, что за сам (кроме задаю этот вопрос здесь)? Могу ли я как-то сказать apt-get, чтобы перечислить все пакеты, и grep для ssl? Или мне нужно знать соглашение об именовании «lib * -dev» ?

Если вы связываетесь с -lfoo, тогда, скорее всего, библиотека будет libfoo.so. Сама библиотека, вероятно, является частью пакета libfoo, а заголовки находятся в пакете libfoo-dev, как вы обнаружили.

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

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

Выполнение Bash на самом деле очень полезно ... например, вы также можете получить список команд, которые поддерживают «apt-get», набрав sudo apt-get, а затем нажав «вкладку».

+2

Я думаю, вы имеете в виду приложение «Synaptics», а не «синергию». Synergy - это инструмент, который разделяет вашу клавиатуру и мышь на нескольких системах. Если не будет другой синергии, я не знаю. – Tauren

+0

Спасибо, I_did_ означает «синаптический» менеджер пакетов (обратите внимание: не Synaptics тоже, это компания). Там _is_ другой синергии, которая является особенностью Palm WebOS, и, вероятно, поэтому мои пальцы набрали «синергию» вместо «синаптики». –

+0

Ubuntu может облегчить боль для людей, так как это проблема в течение многих лет. Они * могут * псевдонимы 'openssl-dev' до' libssl-dev', но они не хотят этого делать. – jww

2

Другой способ установить библиотеку OpenSSL из исходного кода на Ubuntu, следующие шаги, здесь WORKDIR Ваш рабочий каталог:

  1. Sudo APT-получить установку PKG-CONFIG
  2. кд Workdir
  3. мерзавца клон https://github.com/openssl/openssl.git
  4. кд OpenSSL
  5. ./config
  6. сделать
  7. Sudo сделать установку
  8. Открыть /etc/ld.so.conf файл, добавьте новую строку: "/ USR/местные/Библиотека" в EOF
  9. SUDO LDCONFIG
Смежные вопросы