GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Memperbaiki kesalahan Instalasi Ruby:EC_GROUP_new_curve_GF2m tidak dideklarasikan (penggunaan pertama dalam fungsi ini)?

Pertanyaan: Saya mengkompilasi Ruby versi 1.9.3 pada mesin CentOS dan mendapatkan pesan kesalahan di bawah ini saat menjalankan make perintah.

EC_GROUP_new_curve_GF2m undeclared (first use in this function)

Kesalahan terjadi saat mengkompilasi ossl_pkey_ec.c berkas.

Berikut cuplikan kesalahan lengkapnya:

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

Bantu saya mengatasi kesalahan.

Solusi:

Pencarian Google sederhana pada pesan kesalahan EC_GROUP_new_curve_GF2m tidak diumumkan (penggunaan pertama dalam fungsi ini) mengisyaratkan bahwa itu adalah bug yang dikenal di Ruby dengan build OpenSSL. Untungnya, para pengembang telah memperbaiki masalah ini dengan tambalan.

Ikuti langkah-langkah di bawah ini untuk menjalankan patch sebelum membangun (membuat) Ruby:

Langkah 1 :Saya berasumsi bahwa direktori kerja Anda saat ini adalah direktori sumber Ruby.

Langkah 2 :Download patchnya seperti gambar di bawah ini:

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

Langkah 3 :Cari tahu file yang perlu Anda tambal. Dari pesan error di atas, jelas bahwa bug tersebut ada di file ‘ossl_pkey_ec.c’.

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

Langkah 4 :Jalankan patch yang diunduh

# 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

Sekarang tambalan sudah selesai. Coba buat Ruby lagi.

[Ruby_source_directory] # make

Semoga membantu.


Linux
  1. Bagaimana Memperbaiki Kesalahan Otentikasi Keystone OpenStack - HTTP 500?

  2. Bagaimana cara memperbaiki Kesalahan Instalasi Python saat memuat pustaka bersama:libssl.so.1.0.0? [Terselesaikan]

  3. Bagaimana Memperbaiki Kesalahan OpenStack – Gagal menghapus jaringan? [Terselesaikan]

  1. Bagaimana Memperbaiki kesalahan Instalasi Ruby:EC_GROUP_new_curve_GF2m tidak dideklarasikan (penggunaan pertama dalam fungsi ini)?

  2. Bagaimana cara memperbaikinya - Kesalahan Apache:Tidak ada DirectoryIndex yang cocok?

  3. Cara memperbaiki kesalahan "verifikasi kunci host gagal"

  1. Bagaimana cara memperbaiki kesalahan Kegagalan Otentikasi Cron di Linux?

  2. Cara menggunakan fungsi shell baris perintah di Linux

  3. kesalahan:'asm' tidak dideklarasikan (penggunaan pertama dalam fungsi ini)