J'essaie de construire du code sur Ubuntu 10.04 LTS qui utilise OpenSSL 1.0.0. Quand je lance make, il appelle g ++ avec l’option "-lssl". La source comprend:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
Iran:
$ 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.
Mais je suppose que le paquet openssl n'inclut pas la bibliothèque. Je reçois ces erreurs sur 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
Comment installer la bibliothèque OpenSSL C++ sur Ubuntu 10.04 LTS?
J'ai fait un man g++
et (sous "Options de liaison") pour l'option -l, il est écrit: "L'éditeur de liens recherche une liste standard de répertoires pour la bibliothèque ..." et "Les répertoires recherchés incluent plusieurs répertoires système standard ... "Quels sont ces répertoires système standard?
Vous voulez installer le paquet de développement, qui s'appelle libssl-dev:
Sudo apt-get install libssl-dev
apt-get install libssl-dev
Comment aurais-je pu le comprendre moi-même (autre que de poser cette question ici)? Puis-je dire à apt-get de lister tous les paquets et grep pour ssl? Ou dois-je connaître la convention de dénomination "lib * -dev"?
Si vous vous connectez avec -lfoo
, la bibliothèque est probablement libfoo.so
. La bibliothèque elle-même fait probablement partie du package libfoo
et les en-têtes figurent dans le package libfoo-dev
que vous avez découvert.
Certaines personnes utilisent l'application "synaptic" de l'interface graphique (Sudo synaptic
) pour (localiser et) installer des packages, mais je préfère utiliser la ligne de commande. Une chose qui facilite la recherche du bon package à partir de la ligne de commande est le fait que apt-get
prend en charge l'achèvement de bash.
Essayez de taper Sudo apt-get install libssl
puis appuyez sur tab pour afficher une liste des noms de packages correspondants (ce qui peut être utile lorsque vous devez sélectionner la version correcte d’un package contenant plusieurs versions ou d’autres variantes disponibles).
La complétion de Bash est en fait très utile. Par exemple, vous pouvez également obtenir une liste de commandes supportées par apt-get
en tapant Sudo apt-get
puis en tapant tab.
Une autre façon d’installer la bibliothèque openssl à partir du code source sur Ubuntu est la suivante: WORKDIR
correspond à votre répertoire de travail:
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
J'ai trouvé une solution détaillée ici: Installer OpenSSL manuellement sous Linux
De l'article de blog ...: _
Les étapes pour télécharger, compiler et installer sont les suivantes (j'installe la version 1.0.1g ci-dessous; veuillez remplacer "1.0.1g" par votre numéro de version):
Étape 1: Téléchargement d'OpenSSL:
Exécutez la commande comme ci-dessous:
$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
En outre, téléchargez le hachage MD5 pour vérifier l’intégrité du fichier téléchargé à des fins de variation uniquement. Dans le même dossier où vous avez téléchargé le fichier OpenSSL à partir du site Web:
$ 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
Étape 2: extraire les fichiers du paquet téléchargé:
$ tar -xvzf openssl-1.0.1g.tar.gz
Maintenant, entrez le répertoire où le paquet est extrait comme ici est openssl-1.0.1g
$ cd openssl-1.0.1g
Étape 3: Configuration OpenSSL
Exécutez la commande ci-dessous avec une condition facultative pour définir le préfixe et le répertoire dans lequel vous souhaitez copier les fichiers et les dossiers.
$ ./config –prefix=/usr/local/openssl –openssldir=/usr/local/openssl
Vous pouvez remplacer «/ usr/local/openssl» par le chemin du répertoire dans lequel vous souhaitez copier les fichiers et les dossiers. Mais assurez-vous que tout en effectuant cette opération, recherchez tout message d'erreur sur le terminal.
Étape 4: Compiler OpenSSL
Pour compiler openssl, vous devez exécuter la commande 2 suivante: make, make install comme suit:
$ make
Remarque: recherchez tout message d'erreur à des fins de vérification.
Étape -5: Installation d'OpenSSL:
$ Sudo make install
Ou sans Sudo,
$ make install
C'est tout. OpenSSL a été installé avec succès. Vous pouvez exécuter la commande version pour voir si cela a fonctionné ou non comme ci-dessous:
$ /usr/local/openssl/bin/openssl version
OpenSSL 1.0.1g 7 Apr 2014
Vous voulez le paquet openssl-devel
. Au moins, je pense que c'est -devel
sur Ubuntu. Peut-être -dev
. C'est l'un des deux.