Hoe installeer ik de OpenSSL-bibliotheken op Ubuntu?

Ik probeer code te bouwen op Ubuntu 10.04 LTS die OpenSSL 1.0.0 gebruikt. Wanneer ik make uitvoer, roept het g++ aan met de optie “-lssl”. De bron bevat:

#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>

Ik heb gerend:

$ 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.

Maar ik vermoed dat het openssl-pakket de bibliotheek niet bevat. Ik krijg deze fouten bij 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

Hoe installeer ik de OpenSSL C++-bibliotheek op Ubuntu 10.04 LTS?

Ik deed een man g++en (onder “Options for Linking”) voor de -l optie staat: ” De linker zoekt in een standaard lijst met mappen voor de bibliotheek…” en ” De doorzochte mappen bevatten verschillende standaard systeemmappen…” Wat zijn die standaard systeemmappen?


Antwoord 1, autoriteit 100%

U wilt het ontwikkelpakket installeren, namelijk libssl-dev:

sudo apt-get install libssl-dev

Antwoord 2, autoriteit 7%

Uitvoeren:

apt-get install libssl-dev


Antwoord 3, autoriteit 3%

Hoe had ik dat kunnen bedenken voor?
mezelf (behalve dat ik dit vraag)
vraag hier)? Kan ik het op de een of andere manier vertellen?
apt-get om alle pakketten weer te geven, en grep
voor ssl? Of moet ik het weten?
“lib*-dev” naamgevingsconventie?

Als je linkt met -lfoo, dan is de bibliotheek waarschijnlijk libfoo.so. De bibliotheek zelf maakt waarschijnlijk deel uit van het pakket libfooen de headers bevinden zich in het pakket libfoo-dev, zoals je hebt ontdekt.

Sommige mensen gebruiken de GUI “synaptic” app (sudo synaptic) om pakketten te (lokaliseren en) te installeren, maar ik gebruik liever de opdrachtregel. Een ding dat het gemakkelijker maakt om het juiste pakket vanaf de opdrachtregel te vinden, is het feit dat apt-getbash-aanvulling ondersteunt.

Probeer sudo apt-get install libsslte typen en druk vervolgens op tabom een lijst met overeenkomende pakketnamen te zien (wat kan helpen wanneer u de juiste versie van een pakket dat meerdere versies of andere variaties beschikbaar heeft).

Bash-aanvulling is eigenlijk heel handig… u kunt bijvoorbeeld ook een lijst met opdrachten krijgen die apt-getondersteunt door sudo apt-gette typen en vervolgens op tabdrukken.


Antwoord 4, autoriteit 2%

Ik heb hier een gedetailleerde oplossing gevonden: Installeer OpenSSL handmatig op Linux

Van de blogpost…:

De stappen voor downloaden, compileren en installeren zijn als volgt (ik installeer hieronder versie 1.0.1g; vervang “1.0.1g” door uw versienummer):

Stap – 1: OpenSSL downloaden:

Voer de opdracht uit zoals hieronder:

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

Download ook de MD5-hash om de integriteit van het gedownloade bestand te verifiëren, alleen voor variatiedoeleinden. In dezelfde map waar je het OpenSSL-bestand van de website hebt gedownload:

$ 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

Stap – 2 : Bestanden uit het gedownloade pakket extraheren:

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

Voer nu de map in waar het pakket wordt uitgepakt, zoals hier is openssl-1.0.1g

$ cd openssl-1.0.1g

Stap – 3: Configuratie OpenSSL

Voer onderstaande opdracht uit met optionele voorwaarde om het voorvoegsel en de map in te stellen waar u bestanden en mappen wilt kopiëren.

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

U kunt “/usr/local/openssl” vervangen door het mappad waar u de bestanden en mappen naartoe wilt kopiëren. Maar zorg ervoor dat u tijdens het uitvoeren van deze stappen controleert op eventuele foutmeldingen op de terminal.

Stap – 4: OpenSSL compileren

Om openssl te compileren moet je 2 commando’s uitvoeren: make, make install zoals hieronder:

$ make

Opmerking: controleer op eventuele foutmeldingen voor verificatiedoeleinden.

Stap -5: OpenSSL installeren:

$ sudo make install

Of zonder sudo,

$ make install

Dat is het. OpenSSL is succesvol geïnstalleerd. U kunt het versiecommando uitvoeren om te zien of het werkte of niet, zoals hieronder:

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

OpenSSL 1.0.1g 7 Apr 2014


Antwoord 5

Een andere manier om de openssl-bibliotheek te installeren vanuit de broncode op Ubuntu, volgt de onderstaande stappen, hier is WORKDIRuw werkmap:

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

Antwoord 6

U wilt het pakket openssl-devel.
Ik denk tenminste dat het -develis op Ubuntu. Mogelijk -dev. Het is een van de twee.


Antwoord 7

Als algemene regel geldt dat als u Debian of Ubuntu gebruikt en u een ontwikkelbestand (of een ander bestand wat dat betreft) mist, apt-filegebruikt om erachter te komen welk pakket dat bestand levert :

~ 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

Een snelle blik op elk van de pakketten die door de opdracht worden geretourneerd, met behulp van apt showzal u vertellen welke van de pakketten degene is die u zoekt:

~ apt show libssl-dev
Package: libssl-dev
Version: 1.1.1d-2
Priority: optional
Section: libdevel
Source: openssl
Maintainer: Debian OpenSSL Team <[email protected]>
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

Antwoord 8

  1. Ga naar de officiële website en download de broncode voor de versie die je nodig hebt

  2. Pak vervolgens het updatepakket uit en voer de volgende opdracht uit

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

Omdat de standaardinstelling is om alleen statische bibliotheken te genereren, voegt u de optie “gedeeld”toe

als u dynamische bibliotheken wilt.

  1. make && make install

Antwoord 9

sudo apt-get install libcurl4-openssl-dev

Other episodes