2012-10-15 11 views
6

मैं अपनी नई परियोजना के लिए जरूरी रत्न स्थापित करने के लिए bundle का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे 'एफएफआई' मणि के संस्करण 1.1.5 को स्थापित करने में समस्या हो रही है।उबंटू सर्वर पर रूबी मणि "एफएफआई" स्थापित करने में समस्याएं 12.04

मैं रूबी 1.9.3 का उपयोग 64-बिट उबंटू सर्वर 12.04 के वर्चुअलाइज्ड इंस्टॉलेशन पर चल रहा हूं। जब bundle आदेश चलाकर, मैं निम्नलिखित त्रुटि संदेश मिलता है:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /home/alex/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb 
checking for ffi.h... no 
checking for ffi.h in /usr/local/include,/usr/include/ffi... no 
checking for rb_thread_blocking_region()... yes 
checking for ruby_native_thread_p()... yes 
checking for rb_thread_call_with_gvl()... yes 
creating extconf.h 
creating Makefile 

make 
Configuring libffi 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux"SampleRails 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ems/[email protected] 
make "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=-Wall -fexceptions" "CXXFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=/b/gems/ffi-1.1.5/ext/ffi_c/libffi/missing --run makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/bash" "exec_prefix=/usr/local" "infodir=/usr/local/share/info" "libdir=/usr/local/lib" "mandir=/usr/local/share/man" "prefix=/usr/local" "AR=ar" "AS=as" "CC=gcc" "CXX=g++" "LD=/usr/bin/ld -m elf_x86_64" "NM=/usr/bin/nm -B" "RANLIB=ranlib" "DESTDIR=" all-recursive 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ems/[email protected] 
Making all in include 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/include'[email protected] 
make[3]: Nothing to be done for `all'. 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/include'[email protected] 
Making all in testsuite 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/testsuite'[email protected] 
make[3]: Nothing to be done for `all'. 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/testsuite'[email protected] 
Making all in man 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/man'[email protected] 
make[3]: *** No rule to make target `ffi.3', needed by `all-am'. Stop. 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/man'[email protected] 
make[2]: *** [all-recursive] Error 1 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ms/[email protected] 
make[1]: *** [all] Error 2 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ms/[email protected] 
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux"/.libs/libffi_convenience.a] Error 2 


/gems/ffi-1.1.5 for inspection. in /home/alex/.rvm/gems/[email protected] 
/gems/ffi-1.1.5/ext/ffi_c/gem_make.out/[email protected] 
An error occurred while installing ffi (1.1.5), and Bundler cannot continue. 
Make sure that `gem install ffi -v '1.1.5'` succeeds before bundling. 

त्रुटि लाइन make[3]: *** No rule to make target 'ffi.3', needed by 'all-am' की वजह से हो रहा है, लेकिन मैं कोई भी इसका क्या मतलब है के रूप में समझदार हूँ।

क्या कोई मेरी मदद कर सकता है? अग्रिम में धन्यवाद!

+0

क्या आपने इसे बिना बंडलर के इंस्टॉल करने का प्रयास किया है? मणि एफएफआई स्थापित करें? – corroded

+0

दुर्भाग्यवश मुझे बिल्कुल वही समस्या मिलती है। पहली त्रुटि रेखा से पहले की रेखा यह दिखती है कि यह एक मैनपेज उत्पन्न कर रहा है, जिसे मैं बिना खुशी से रह सकता था - इसलिए यदि मेकफ़ाइल के इन हिस्सों को हटाने का कोई तरीका है तो मैं उससे भी खुश हूं। – ultrafez

+0

कैसे मणि स्थापित ffi --no-ri --no-rdoc? – corroded

उत्तर

13

libffi-देव पैकेज स्थापित करें:

sudo apt-get install libffi-dev 

ffi मणि अगर यह libffi के लिए हेडर/लिंक lib है, जो एक आधुनिक Linux सिस्टम पर कभी नहीं है नहीं मिल सकता है अपने आंतरिक libffi पुस्तकालय का निर्माण होगा क्या आप चाहते हैं - बस अपने सिस्टम के देव पैकेज स्थापित करें।

+0

शानदार - यह पूरी तरह से काम किया। बहुत बहुत धन्यवाद! क्या यह ज्यादातर रत्नों के मामले में है कि वे अपने आंतरिक पुस्तकालयों का निर्माण करेंगे यदि यह पहले से ही सिस्टम पर स्थापित नहीं है? – ultrafez

+1

यह मणि पर निर्भर करता है। एफएफआई के साथ, मैंने libffi की एक आंतरिक प्रतिलिपि जोड़ दी, क्योंकि इसने (उस समय) खून बहने वाले किनारे libffi से कुछ विशेषताओं का उपयोग किया। अधिकांश लिनक्स सिस्टम अब पर्याप्त हाल ही में लिम्फी के साथ शिप करते हैं, लेकिन यह अभी भी उन अन्य प्रणालियों के लिए उपयोगी है जो libffi को बिल्कुल नहीं भेजते हैं। –

संबंधित मुद्दे