2015-03-27 9 views
6

जब भी मैं रेल या रेक डीबी पर जाता हूं तो रूबी चलाने की कोशिश कर रहा हूं: माइग्रेट मुझे निम्न त्रुटि मिलती है ऐसी फ़ाइल bcrypt_ext लोड नहीं हो सकती है।विंडोज़ पर रूबी त्रुटि का कारण बनता है त्रुटि ऐसी फ़ाइल लोड नहीं कर सकती bcrypt_ext

मेरा रूबी संस्करण 2.2.1 है मेरा रेल संस्करण 4.2.0 है और बीसीक्रिप्ट संस्करण 3.1.10 है। जब मैं बंडल इंस्टॉल करता हूं तो सभी रत्न सही ढंग से इंस्टॉल होते हैं, हालांकि जब भी मैं रेक करने की कोशिश करता हूं तो यह मुझे त्रुटि देता है। किसी भी मदद की बहुत सराहना की जाएगी

+0

'ruby-bcrypt' संस्करण' 3.1.9' के साथ प्रयास करें; यह [github पर धागा] (https://github.com/codahale/bcrypt-ruby/issues/102) यह इंगित करता है कि बग उस विशिष्ट संस्करण के लिए तय किया गया था। शायद '3.1.10' में एक रिग्रेशन है। –

उत्तर

1

अधिकतर संकलित मणि बाइनरी में Ruby 2.2.1 के लिए बाइनरी नहीं होती है। ऐसा इसलिए है क्योंकि विंडोज़ लक्ष्य के साथ क्रॉस-कंपाइलिंग रूबी के साथ कोई समस्या है। अधिक जानकारी के लिए this answer देखें।

सर्वोत्तम विकल्प Ruby 2.1.5 पर डाउनग्रेड करना है।

आप खुद को मणि संकलित करने का प्रयास कर सकते हैं, लेकिन यह एक बिल्कुल अलग जानवर है। कुछ मामलों में, nokogiri की तरह, यह भी संभव नहीं है।

+0

टिप के लिए धन्यवाद, रत्न स्थापित करने की कोशिश करते समय एक एसएसएल प्रमाण समस्या प्राप्त करना ताकि मुझे वहां से जाना पड़े। – Byrd

+0

यह एक पूरी तरह से अलग मुद्दा है। [यहां फिक्स है] (https://gist.github.com/luislavena/f064211759ee0f806c88#installing-using-update-packages-new) – Azolo

+0

मार्गदर्शिका के लिए धन्यवाद, लेकिन ऐसा लगता है कि इस बंडल में रत्नों का बहुत कुछ नहीं हो सकता है खिड़कियों के साथ संगत। अब एक ही त्रुटि हो रही है pg_ext – Byrd

16

आप उपयोग करने के लिए क्या यह यहाँ का कहना है की जरूरत है: https://www.alib.jp/entries/bcrypt_ext_load_error_on_ruby21x

C:\> gem install --no-ri --no-rdoc bcrypt 
C:\> cd (path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri 
C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> ruby extconf.rb 
C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> make 
C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> make install 
+0

जो भी नीचे गिर गया, यह मेरे लिए काम किया। –

+3

यह विचित्र है। मैंने इस उत्तर का उपयोग किया, लेकिन फिर 'इंस्टॉल करें' परिणामस्वरूप '.so' फ़ाइल को' C: \ Ruby22 \ lib \ ruby ​​\ site_ruby \ 2.2.0 \ i386-msvcrt' में डाल दिया। त्रुटि संदेश के अनुसार, मणि इसके लिए वहां नहीं देख रहा था। इसलिए, मैंने मैन्युअल रूप से 'सी: \ रूबी 22 \ lib \ ruby ​​\ gems \ 2.2.0 \ gems \ bcrypt-ruby-3.1.1.rc1-x86-mingw32 \ lib' पर कॉपी किया और यह ठीक काम किया। मणि के विभिन्न संस्करण, जैसा कि आप देख सकते हैं, लेकिन हो सकता है कि यह डाउनवॉटर की मदद करेगा। – Hut8

+0

अद्यतन '@ hut8' के लिए धन्यवाद! –

1

Rich Peck समाधान एक छोटे से अद्यतन के साथ मेरे लिए काम किया। सुनिश्चित करें कि devkit पर्यावरण पथ में शामिल है। (कमांड प्रॉम्प्ट में पथ टाइप करके इसे जांचें) यदि इसमें शामिल नहीं है, तो आपको अपने PATH var में devkit/bin and devkit/mingw/bin पथ जोड़ना होगा।

अन्यथा - बनाना: x86_64-w64-mingw32-gcc: कमांड नहीं मिला - फ़ाइल बनाने के दौरान त्रुटि फेंक दी जाएगी।

त्रुटि ठीक होने के बाद, मैं फ़ाइल बनाने में सक्षम हूं और bcrypt_ext समस्या हल हो गई है।

4

Windows 10 के लिए, 3.1.11 bcrypt अब काम करता है, checked in 24144

कदम:

  1. नीचे सभी रेल सर्वर
  2. स्थापना रद्द करें bcrypt के सभी संस्करणों
  3. मैन्युअल v3.1.1 स्थापित (बंद gem install bcrypt -v '3.1.11')
  4. परियोजनाओं की मणि फाइल अपडेट करें

वर्तमान संस्करण

  • माणिक 2.2.4p230 (2015/12/16 संशोधन 53,155) [i386-mingw32]

  • ओएस नाम: माइक्रोसॉफ्ट विंडोज 10 प्रो

  • ओएस संस्करण: 10.0.10586 एन/ए बिल्ड 10586

+0

यह मेरे लिए काम नहीं कर रहा है। – screenmutt

2

गंदे त्वरित कार्यवाही के साथ एमआरआई संस्करण स्थापित करना है

gem install bcrypt --platform=ruby

मेरे लिए काम किया।

Fetching: bcrypt-3.1.11.gem (100%) Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... Successfully installed bcrypt-3.1.11

स्रोत: topac पर अप्रैल 17 ने टिप्पणी की, 2015 https://github.com/codahale/bcrypt-ruby/issues/116

+1

यह विंडोज 10 पर मेरे लिए काम किया – pyRabbit

2

मैं विंडो 8.1 64 बिट, रूबी 2.3.3 64 बिट में एक ही समस्या से मिलने, 4.2.10 रेल।

मेरे त्वरित समाधान:

चरण 1: मणि में सभी bcrypt निकालें: gem uninstall bcrypt (विकल्प 3 चुनते हैं अस्तित्व में (सभी हटाने))

चरण 2: फिर gem install bcrypt

: फिर bcrypt स्थापित करें bcrypt का संस्करण देखें: gem list bcrypt

चरण 3: अपनी परियोजना के जेमफाइल में, जोड़ें: gem 'bcrypt', '3.1.11', platforms: [:ruby, :x64_mingw] नोटिस: आपके उपयुक्त संस्करण को बदलें आर bcrypt (मेरी संस्करण: 3.1.11)

चरण 4: bundle install

चरण 5:: अपनी परियोजना की राह में आदेश चलाएं भागो आदेश: gem uninstall bcrypt आप कुछ संस्करण देख सकते हैं अनावश्यक bcrypt निकालें bcrypt का, आपको एक संस्करण रखना चाहिए: bcrypt- [your-version]। (सभी संस्करण निकालें: bcrypt- [अपने-संस्करण] -x64-mingw32 mycase में, निकालें:। Bcrypt-3.1.11-64-mingw32)

पुनः प्रारंभ रेल तोड़,

किया मैं इस proplem क्योंकि लगता है जब हम bcrypt इंस्टॉल करते हैं, हमने 64 बिट या 32 बिट निर्दिष्ट नहीं किया है, यह विंडो या रूबी (64 बिट या 32 बिट)

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

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