Comment puis-je installer et construire avec OpenSSL 1.0.0 sur Ubuntu?

Vous pouvez envisager cette question de suivi à Comment puis-je installer OpenSSL bibliothèque C++ sous Ubuntu?

Je suis en train de construire un peu de code sur Ubuntu 10.04 LTS qui nécessite OpenSSL 1.0.0.

Ubuntu 10.04 LTS est livré avec OpenSSL 0.9.8 k:

$ openssl version
OpenSSL 0.9.8k 25 Mar 2009

Donc, après l'exécution de sudo apt-get install libssl-dev et la construction, l'exécution de la commande ldd confirme, je suis lié à 0.9.8:

$ ldd foo
        ...
        libssl.so.0.9.8 => /lib/i686/cmov/libssl.so.0.9.8 (0x00110000)
        ...
        libcrypto.so.0.9.8 => /lib/i686/cmov/libcrypto.so.0.9.8 (0x002b0000)
        ...

Comment puis-je installer OpenSSL 1.0.0 et la 1.0.0 paquet de développement?

Mise à jour: je suis en train d'écrire cette mise à jour après la lecture de SB's réponse (mais avant de l'essayer), parce que c'est clair que j'ai besoin d'expliquer que la solution la plus évidente de télécharger et d'installer OpenSSL 1.0.0 ne fonctionne pas:

Après avoir réussi à faire ce qui suit (recommandé dans le fichier INSTALL):

  $ ./config
  $ make
  $ make test
  $ make install

...J'obtiens toujours:

OpenSSL 0.9.8k 25 Mar 2009

...et:

$ sudo apt-get install libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libssl-dev is already the newest version.
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

...et (juste pour faire sûr) après la reconstruction de mon code, ldd renvoie toujours la même chose.

Mise à jour #2: j'ai ajouté le "-I/usr/local/ssl/include" et "-L/usr/local/ssl/lib" options (suggéré par SB) à mon makefile, mais je suis maintenant un tas de destruction de référence des erreurs de compilation, par exemple:

/home/dspitzer/foo/foo.cpp:86: undefined reference to `BIO_f_base64'
/home/dspitzer/foo/foo.cpp:86: undefined reference to `BIO_new'

/usr/local/ssl/include/ne contient qu'une openssl répertoire (qui contient de nombreuses .h fichiers), donc j'ai aussi essayé "-I/usr/local/ssl/include/openssl", mais les mêmes erreurs.

Mise à jour #3: j'ai essayé de changer les OpenSSL comprend à partir de (par exemple):

#include <openssl/bio.h>

...:

#include "openssl/bio.h"

...dans le .rpc fichier source, mais toujours obtenir la même undefined reference erreurs.

Mise à jour #4: je me rends compte maintenant ceux undefined reference erreurs sont des erreurs d'édition de liens. Si je supprime le "-L/usr/local/ssl/lib" de mon Makefile, je n'ai pas les erreurs (mais il des liens vers d'OpenSSL 0.9.8). Le contenu de /usr/local/ssl/lib/sont:

$ ls /usr/local/ssl/lib/
engines  libcrypto.a  libssl.a  pkgconfig

J'ai ajouté -lcrypto, et les erreurs s'en alla.

source d'informationauteur Daryl Spitzer