8 votes

Erreur OpenSSL lors de l'installation de Ruby 2.1.x et 2.3.x sur Archlinux avec ruby-install/ruby-build

J'ai eu quelques problèmes pour construire d'anciennes versions de Ruby avec ruby-install sur Archlinux. Je pense qu'il en est de même avec ruby-build. Je vois ce qui suit après avoir essayé d'installer Ruby 2.1.5, 2.1.6, 2.3.0, 2.3.1, 2.3.4.

/usr/include/openssl/asn1_mac.h:10:2: error: #error "This file is obsolete; please update your software."
#error "This file is obsolete; please update your software."

ou

ossl_ssl.c:465:38: error: ‘CRYPTO_LOCK_SSL_SESSION’ undeclared

20voto

PhilT Points 863

S'il n'est pas déjà installé, vous avez besoin de l'Open SSL 1.0 :

pacman -S openssl-1.0

Pour installer Ruby 2.3.x, les éléments suivants sont nécessaires :

PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install ruby 2.3.0

J'ai installé les versions 2.3.0, 2.3.1 et 2.3.4 de cette manière.

J'utilise ruby-install mais il en va probablement de même pour ruby-build ( rbenv ).

Pour Ruby 2.1.x et 2.2.x, un correctif est également nécessaire :

curl -fsSL https://gist.github.com/mislav/055441129184a1512bb5.txt > ruby2.x-openssl.patch
PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install -p ruby2.x-openssl.patch ruby 2.1.5

J'ai installé les versions 2.1.5 et 2.1.6 de cette manière.

Pour les versions plus anciennes de Ruby (< 2), un patch différent peut être nécessaire, qui peut être téléchargé ici :

https://github.com/rbenv/ruby-build/wiki#openssl-sslv3_method-undeclared-error

Mémoire corrompue et Segfaults lors de la compilation de ruby

Si vous obtenez des erreurs de segmentation lors de la compilation, cela peut être dû à la dernière version de gcc. Une solution consiste à installer une version plus ancienne et à la spécifier à ruby-install :

sudo pacman -S gcc5
CC=/usr/sbin/gcc-5 PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install ruby 2.3.0

Référence : https://github.com/rbenv/ruby-build/issues/1092

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X