GNU/Linux >> Linux Esercitazione >  >> Linux

Come correggere l'errore di installazione di Ruby:EC_GROUP_new_curve_GF2m non dichiarato (primo utilizzo in questa funzione)?

Domanda: Stavo compilando Ruby versione 1.9.3 su una macchina CentOS e mi sono imbattuto nel seguente messaggio di errore durante l'esecuzione di make comando.

EC_GROUP_new_curve_GF2m undeclared (first use in this function)

L'errore si è verificato durante la compilazione di ossl_pkey_ec.c file.

Ecco l'istantanea dell'errore completo:

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

Aiutami a risolvere l'errore.

Soluzione:

Una semplice ricerca su Google sul messaggio di errore EC_GROUP_new_curve_GF2m non dichiarato (primo utilizzo in questa funzione) ha suggerito che si tratta di un bug noto in Ruby con la build OpenSSL. Fortunatamente, gli sviluppatori hanno risolto il problema con una patch.

Segui i passaggi seguenti per eseguire la patch prima di creare (creare) Ruby:

Passaggio 1 :Presumo che la tua attuale directory di lavoro sia la directory dei sorgenti di Ruby.

Passaggio 2 :Scarica la patch come mostrato di seguito:

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

Passaggio 3 :Scopri il file di cui hai bisogno per patchare. Dal messaggio di errore sopra riportato, è chiaro che il bug è presente nel file 'ossl_pkey_ec.c'.

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

Passaggio 4 :esegui la patch scaricata

# 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

Ora la patch è fatta. Prova a costruire di nuovo Ruby.

[Ruby_source_directory] # make

Spero che aiuti.


Linux
  1. Come correggere l'errore di errore di autenticazione Cron in Linux?

  2. Come correggere l'errore di installazione di Python durante il caricamento delle librerie condivise:libssl.so.1.0.0? [Risolto]

  3. Come risolvere l'errore OpenStack - Impossibile eliminare la rete? [Risolto]

  4. Come correggere l'errore di installazione di Ruby:EC_GROUP_new_curve_GF2m non dichiarato (primo utilizzo in questa funzione)?

  5. Come risolvere Call to undefined function apc_fetch() – Errore irreversibile PHP [risolto]

Funzione Bash e come usarla {Variabili, argomenti, ritorno}

Come correggere l'errore di conversione con Calibre

Come utilizzare PostgreSQL con l'applicazione Ruby On Rails

Come utilizzare MySQL con l'applicazione Ruby On Rails

Come risolvere il problema - Errore Apache:DirectoryIndex non corrispondente?

Come installare e utilizzare Ruby su distribuzioni Linux