GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo corregir el error de instalación de Ruby:EC_GROUP_new_curve_GF2m no declarado (primer uso en esta función)?

Pregunta: Estaba compilando Ruby versión 1.9.3 en una máquina CentOS y aterricé con el siguiente mensaje de error mientras ejecutaba make comando.

EC_GROUP_new_curve_GF2m undeclared (first use in this function)

El error ocurrió al compilar ossl_pkey_ec.c archivo.

Aquí está la instantánea del error 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

Ayúdame a solucionar el error.

Solución:

Una simple búsqueda en Google del mensaje de error EC_GROUP_new_curve_GF2m no declarado (primer uso en esta función) insinuó que es un error conocido en Ruby con la compilación OpenSSL. Afortunadamente, los desarrolladores solucionaron el problema con un parche.

Siga los pasos a continuación para ejecutar el parche antes de compilar (hacer) Ruby:

Paso 1 :Supongo que su directorio de trabajo actual es el directorio fuente de Ruby.

Paso 2 :Descargue el parche como se muestra a continuación:

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

Paso 3 :Averigüe el archivo que necesita parchear. Del mensaje de error anterior, está claro que el error está presente en el archivo 'ossl_pkey_ec.c'.

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

Paso 4 :Ejecute el parche descargado

# 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

Ahora el parche está hecho. Intenta compilar Ruby de nuevo.

[Ruby_source_directory] # make

Espero que ayude.


Linux
  1. Cómo reparar el error "gpg:keyserver receive fail:No dirmngr"

  2. ¿Cómo reparar el error de falla de autenticación de Cron en Linux?

  3. ¿Cómo corregir el error de instalación de Python al cargar bibliotecas compartidas:libssl.so.1.0.0? [Resuelto]

  4. Cómo corregir el error de OpenStack:¿no se pudo eliminar la red? [Resuelto]

  5. ¿Cómo corregir el error de instalación de Ruby:EC_GROUP_new_curve_GF2m no declarado (primer uso en esta función)?

Función Bash y cómo usarla {Variables, Argumentos, Retorno}

Cómo corregir el error de conversión con Calibre

Cómo usar PostgreSQL con la aplicación Ruby on Rails

Cómo usar MySQL con la aplicación Ruby on Rails

Cómo corregir - Error de Apache:¿No hay un índice de directorio coincidente?

Cómo instalar y usar Ruby en distribuciones de Linux