GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie behebt man den Ruby-Installationsfehler:EC_GROUP_new_curve_GF2m nicht deklariert (erste Verwendung in dieser Funktion)?

Frage: Ich habe Ruby Version 1.9.3 auf einem CentOS-Rechner kompiliert und bin beim Ausführen von make mit der folgenden Fehlermeldung gelandet Befehl.

EC_GROUP_new_curve_GF2m undeclared (first use in this function)

Der Fehler ist beim Kompilieren von ossl_pkey_ec.c aufgetreten Datei.

Hier ist die Momentaufnahme des vollständigen Fehlers:

# ./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

Helfen Sie mir, den Fehler zu beheben.

Lösung:

Eine einfache Google-Suche nach der Fehlermeldung EC_GROUP_new_curve_GF2m undeclared (first use in this function) angedeutet, dass es sich um einen bekannten Fehler in Ruby mit OpenSSL-Build handelt. Glücklicherweise hatten die Entwickler das Problem mit einem Patch behoben.

Führen Sie die folgenden Schritte aus, um den Patch auszuführen, bevor Sie Ruby erstellen (erstellen):

Schritt 1 :Ich nehme an, dass Ihr aktuelles Arbeitsverzeichnis das Ruby-Quellverzeichnis ist.

Schritt 2 :Laden Sie den Patch wie unten gezeigt herunter:

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

Schritt 3 :Finden Sie die Datei heraus, die Sie patchen müssen. Aus der obigen Fehlermeldung geht klar hervor, dass der Fehler in der Datei „ossl_pkey_ec.c“ vorhanden ist.

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

Schritt 4 :Führen Sie den heruntergeladenen Patch aus

# 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

Jetzt ist der Patch fertig. Versuchen Sie erneut, Ruby zu erstellen.

[Ruby_source_directory] # make

Hoffe es hilft.


Linux
  1. Wie behebt man den Keystone-Authentifizierungsfehler von OpenStack – HTTP 500?

  2. Wie behebt man den Python-Installationsfehler beim Laden gemeinsam genutzter Bibliotheken:libssl.so.1.0.0? [Gelöst]

  3. So beheben Sie den Paketinstallationsfehler – Probleme können nicht behoben werden, Sie haben beschädigte Pakete gespeichert

  4. Wie behebt man den OpenStack-Fehler – Netzwerk konnte nicht gelöscht werden? [Gelöst]

  5. So beheben Sie den Fehler „Verifizierung des Hostschlüssels fehlgeschlagen“

Bash-Funktion und Verwendung {Variablen, Argumente, Rückgabe}

So beheben Sie Konvertierungsfehler mit Calibre

So verwenden Sie PostgreSQL mit der Ruby On Rails-Anwendung

So verwenden Sie MySQL mit der Ruby On Rails-Anwendung

So installieren und verwenden Sie Ruby unter Linux-Distributionen

Wie verwende ich Locate in Cygwin?