2014-04-16 13 views
6
स्थापित करने के लिए

थोड़ी देर के लिए उपयोग किया गया OpenShift/Node.js अब, ज्यादातर समस्या मुक्त विफल रहता है। आम तौर पर मैं अपने स्थानीय (विंडोज़) मशीन पर (एनपीएम के माध्यम से) मॉड्यूल स्थापित करता हूं, ओपनशेफ्ट पर गिट-तैनाती से विकसित करता हूं और सब ठीक हो जाता है।OpenShift (Node.js) jsdom

मैं हाल ही में jsdom मॉड्यूल (जो फिर से ठीक स्थानीय स्तर पर काम करता है) जोड़ा, लेकिन जब मैं git तैनाती (Git धक्का पर कोई त्रुटि), मैं इस त्रुटि जब मैं अपने एप्लिकेशन का उपयोग करने की कोशिश मिलती है:

.../app-root/runtime/repo/node_modules/jsdom/node_modules/contextify/node_modules/bindings/bindings.js:91 
throw err 
^ 
Error: Could not locate the bindings file. 

निर्देशिकाओं की एक सूची द्वारा पीछा किया गया नोड ने इसे देखने का प्रयास किया। जब मैं इन निर्देशिकाओं के लिए रिमोट सर्वर की जांच करता हूं, तो वे गायब होते हैं (भले ही वे मेरी स्थानीय मशीन पर मौजूद हों और धक्का दिए गए हों)।

Invalid ELF header

कौन सा मुझे समझ है, क्योंकि contextify मॉड्यूल सर्वर पर निर्माण नहीं किया (यानी, मैं इसे कॉपी): यदि मैं FTP के माध्यम से फ़ोल्डरों पर कॉपी करने का प्रयास है, मैं इस त्रुटि मिलती है।

ध्यान दें कि मेरी package.json में मेरी निर्भरता "jsdom" होते हैं: "0.1.7"।

कुछ Googling के बाद, मैं अगले मैन्युअल NPM के माध्यम से दूरस्थ सर्वर पर मॉड्यूल स्थापित करने के लिए कोशिश की। इसने निम्नलिखित त्रुटि उत्पन्न की:

npm http 304 https://registry.npmjs.org/mime 
npm http 304 https://registry.npmjs.org/combined-stream 
npm http 304 https://registry.npmjs.org/async 

> [email protected] install /var/lib/openshift/52...52/nodejs/node_modules/jsdom/node_modules/contextify 
> node-gyp rebuild 

npm http GET https://registry.npmjs.org/assert-plus/0.1.2 
npm http GET https://registry.npmjs.org/asn1/0.1.11 
npm http GET https://registry.npmjs.org/ctype/0.5.2 
npm http 304 https://registry.npmjs.org/ctype/0.5.2 
npm http 304 https://registry.npmjs.org/assert-plus/0.1.2 
npm http 304 https://registry.npmjs.org/asn1/0.1.11 
Traceback (most recent call last): 
    File "/opt/rh/nodejs010/root/usr/bin/gyp", line 15, in <module> 
    import gyp 
ImportError: No module named gyp 
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1 
gyp ERR! stack  at ChildProcess.onCpExit (/opt/rh/nodejs010/root/usr/lib/node_modules/node-gyp/lib/configure.js:417:16) 
gyp ERR! stack  at ChildProcess.EventEmitter.emit (events.js:98:17) 
gyp ERR! stack  at Process.ChildProcess._handle.onexit (child_process.js:784:12) 
gyp ERR! System Linux 2.6.32-431.el6oso.bz844450.x86_64 
gyp ERR! command "node" "/opt/rh/nodejs010/root/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" 
gyp ERR! cwd /var/lib/openshift/52...52/app-root/runtime/dependencies/nodejs/node_modules/jsdom/node_modules/contextify 
gyp ERR! node -v v0.10.5 
gyp ERR! node-gyp -v v0.9.5 
gyp ERR! not ok 

यह वह जगह है जहां मैं अब अटक गया हूं। ऐसा लगता है कि रिमोट सर्वर "gyp" गायब है, और मुझे नहीं पता कि इसे कैसे हल किया जाए। मेरे पास "नोड-जीईपी" मॉड्यूल स्थापित है, और मैंने अन्य npm/openshift issues here के बारे में पढ़ा है, लेकिन मुझे नहीं पता कि मेरी समस्या पर उन्हें कैसे लागू किया जाए।

किसी भी मदद की सराहना की जाएगी। अग्रिम में धन्यवाद!

+0

मैं एक ही मुद्दा है। कोई सुराग या अभी भी अटक गया? /: –

+0

मुझे यह समस्या भी मिली है। – Harangue

+0

समय के रूप में गुजरता है, हम में से अधिक इस में चला जाएगा ... https://bugzilla.redhat.com/show_bug.cgi?id=1103113 उनके बगजिला में बग मुझे लगता है कि है कि - लेकिन स्पष्ट रूप से कोई इसे ठीक करने के लिए तैयार हैं? कुछ हैकी कामकाज हैं लेकिन यह पीएएएस के बिंदु को हरा देता है? नोट: यह Heroku ... – shrewdlogarithm

उत्तर

1

प्रश्न जॉन टिप्पणियों में जॉन पीट, और बेन पारेस ने बगजिला मुद्दे पर टिप्पणी 4 पर टिप्पणी की, ऐसा लगता है कि ओपनशफ्ट नोड.जेएस 0.10 कारतूस अपने शैल पथ चर में जीवायपी के लिए एक रास्ता खो रहा है।

कारतूस के अपने सेट ढकोसला निर्भरता प्रदान नहीं किया जा सकता। पाइथन बिल्कुल उपलब्ध नहीं हो सकता है। मैंने अभी पुष्टि की है कि उनके नोड.जेएस कारतूस में कोई पायथनपैथ पर्यावरण चर नहीं है, और सिस्टम कमांडलाइन से उपयोगकर्ता के रूप में एनएमपी करने के लिए सेट नहीं है।

कोशिश jsdom घोषित in packages.json, per Redhat docs.

अगर यह काम नहीं है, या आप एक और अधिक व्यक्तिगत सेटअप, अपने खुद के अजगर को उपलब्ध कराने की तरह की जरूरत है, तो जवाब build a cartridge. हो सकता है कि यह भी 0.12 नोड के लिए ऊपर ले जाने के लिए एक अवसर होगा या Io.js.

+0

स्पष्ट रूप से अपना खुद का कार्ट बनाना। एक विकल्प है - यह आदर्श नहीं है लेकिन यह इस से बाहर का एकमात्र रास्ता लगता है ... बेशक यदि आप ओपनशफ्ट ग्राहक का भुगतान कर रहे हैं तो आप इसे सीधे अपने समर्थन के साथ उठा सकते हैं और शायद उन्हें उन बिट्स को जोड़ने के लिए प्राप्त कर सकते हैं जिन्हें आपको चाहिए स्टॉक कारतूस शायद? – shrewdlogarithm

+0

@JBalzer से अभी तक कोई शब्द नहीं है जिस पर उत्तर के उस हिस्से ने उसके लिए किया था। यदि आपका खुद का कारतूस घुमावदार उत्तर है, तो नहीं, आदर्श नहीं है, लेकिन नोड 0.12 और इस तरह के मुद्दे का मामला ऐसा करने का एकमात्र कारण नहीं है। एक नकारात्मक पक्ष है, अगर मुझे सही याद है, तो ओपनशफ्ट यातायात के जवाब में कस्टम कारतूस गियर "स्केल" नहीं करेगा। दस्तावेज़ों की जांच करें, यद्यपि। –

+0

मैं अनुमान लगा रहा हूं कि @ जेब्लैज़र ने स्थानांतरित हो सकता है - मैंने अभी यहां उछाल उठाया है क्योंकि यह एक ही समस्या का नया संस्करण बनाने से बेहतर है? :) – shrewdlogarithm

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