GNU/Linux >> Tutoriels Linux >  >> Linux

Comment réparer l'erreur d'installation de Ruby :EC_GROUP_new_curve_GF2m non déclaré (première utilisation dans cette fonction) ?

Question : Je compilais Ruby version 1.9.3 sur une machine CentOS et j'ai atterri avec le message d'erreur ci-dessous lors de l'exécution de make commande.

EC_GROUP_new_curve_GF2m undeclared (first use in this function)

L'erreur s'est produite lors de la compilation de ossl_pkey_ec.c fichier.

Voici l'instantané de l'erreur complète :

# ./configure
#make
 ossl_pkey_ec.c: In function âossl_ec_group_initializeâ:
 ossl_pkey_ec.c:761:17: warning: implicit declaration of function âEC_GF2m_simple method [-Wimplicit-function-declaration]
 method = EC_GF2m_simple_method();
 ^
 ossl_pkey_ec.c:761:24: warning: assignment makes pointer from integer without a cast [enabled by default] method = EC_GF2m_simple_method();
 ^
 ossl_pkey_ec.c:816:29: error: âEC_GROUP_new_curve_GF2mâ undeclared (first use in this function) new_curve = EC_GROUP_new_curve_GF2m;
 ^
 ossl_pkey_ec.c:816:29: note: each undeclared identifier is reported only once for each function it appears in
 make[2]: *** [ossl_pkey_ec.o] Error 1
 make[2]: Leaving directory `/root/ruby-1.9.3-p374/ext/openssl'
 make[1]: *** [ext/openssl/all] Error 2
 make[1]: Leaving directory `/root/ruby-1.9.3-p374'
 make: *** [build-ext] Error 2

Aidez-moi à résoudre l'erreur.

Solution :

Une simple recherche Google sur le message d'erreur EC_GROUP_new_curve_GF2m non déclaré (première utilisation dans cette fonction) a laissé entendre qu'il s'agit d'un bogue connu dans Ruby avec la construction OpenSSL. Heureusement, les développeurs ont résolu le problème avec un correctif.

Suivez les étapes ci-dessous pour exécuter le correctif avant de compiler (créer) Ruby :

Étape 1 :Je suppose que votre répertoire de travail actuel est le répertoire source de Ruby.

Étape 2  :Téléchargez le correctif comme indiqué ci-dessous :

# wget https://bugs.ruby-lang.org/attachments/download/3707/out.patch
# ls out.patch
out.patch

Étape 3 :Découvrez le fichier que vous devez corriger. D'après le message d'erreur ci-dessus, il est clair que le bogue est présent dans le fichier "ossl_pkey_ec.c".

# find . -name ossl_pkey_ec.c
./ext/openssl/ossl_pkey_ec.c

Étape 4 :Exécutez le correctif téléchargé

# patch ./ext/openssl/ossl_pkey_ec.c < out.patch
patching file ./ext/openssl/ossl_pkey_ec.c
Hunk #1 succeeded at 757 (offset -5 lines).
Hunk #2 succeeded at 814 (offset -5 lines).
patching file ./ext/openssl/ossl_pkey_ec.c
Hunk #1 FAILED at 7.
1 out of 1 hunk FAILED -- saving rejects to file ./ext/openssl/ossl_pkey_ec.c.rej

Maintenant, le patch est fait. Essayez à nouveau de compiler Ruby.

[Ruby_source_directory] # make

J'espère que ça aide.


Linux
  1. Comment réparer l'erreur "gpg :échec de la réception du serveur de clés :pas de dirmngr"

  2. Comment réparer l'erreur d'échec d'authentification Cron sous Linux ?

  3. Comment réparer l'erreur OpenStack - Échec de la suppression du réseau ? [Résolu]

  4. Comment réparer l'erreur d'installation de Ruby :EC_GROUP_new_curve_GF2m non déclaré (première utilisation dans cette fonction) ?

  5. erreur :'asm' non déclaré (première utilisation dans cette fonction)

Fonction Bash et comment l'utiliser {Variables, Arguments, Return}

Comment réparer une erreur de conversion avec Calibre

Comment utiliser PostgreSQL avec l'application Ruby On Rails

Comment utiliser MySQL avec l'application Ruby On Rails

Comment installer et utiliser Ruby sur les distributions Linux

Comment utiliser la localisation dans cygwin ?