2011-11-06 20 views
7

पर निर्माण करने के लिए लेता है मैं ईसी 2 पर नोडजेएस सेट करने की कोशिश कर रहा हूं।नोडजेएस हमेशा के लिए एडब्ल्यूएस ईसी 2

मैंने आधिकारिक मार्गदर्शिका का पालन किया और यह मेरी स्थानीय मशीन पर सफल रहा। हालांकि ईसी 2 पर स्रोत कोड संकलित करते समय, यह हमेशा खत्म होने के लिए (2 घंटे और गिनती) लेता है। मुझे लगता है कि इसमें सीपीयू सीमा या टाइमआउट के साथ कुछ करना है।

मैं लिनक्स और मेकफ़ाइल से परिचित नहीं हूं। क्या इसे बाईपास करने का कोई तरीका है? धन्यवाद,

+0

क्या आप ईसी 2 मशीन में "ps ux" निष्पादित कर सकते हैं यह देखने के लिए कि स्थानीय उपयोगकर्ता के साथ कौन सी प्रक्रियाएं चल रही हैं? यह एक सुराग दे सकता है जहां यह संकलन बंद कर दिया। – Nican

+0

मैंने अपने ईसी 2 माइक्रो इंस्टेंस पर 5-6 बार नोड संकलित किया है और यह हर बार 10-12 मिनट से अधिक नहीं लेता है। – alessioalex

उत्तर

12

मुझे लगता है कि आप एक माइक्रो इंस्टेंस का उपयोग कर रहे हैं। हां, इसमें कुछ समय लग जाएगा - सूक्ष्म उदाहरणों को थोड़ी देर के लिए बहुत सी सीपीयू मिलती है, फिर थोड़ी देर के लिए सीपीयू का उपयोग करते समय गंभीर रूप से कैप्ड हो जाते हैं। संकलन node.js सीपीयू गहन है।

चमकदार तरफ, आपको केवल एक बार ऐसा करना होगा। एक बार यह खत्म होने के बाद, एएमआई बनाएं और आप जितने चाहें node.js के साथ कई सर्वर लॉन्च कर सकते हैं।

+0

वह, या सिर्फ Heroku का उपयोग करें। – ceejayoz

+0

धन्यवाद। लेकिन संकलन कभी खत्म नहीं होता है। मुझे लगता है कि मैं PHP पर स्विच करूंगा। जब मैं स्थिर हो जाता हूं तो मैं नोडजेएस को हटा दूंगा कि मैं इसे प्राप्त कर सकता हूं। –

+1

लगता है जैसे यह लॉक हो गया है, फिर। यह काफी स्थिर है, बस इतना नया है कि यह मुख्य रिपो में अभी तक नहीं है। मैंने कई बार ईसी 2 माइक्रो पर नोड संकलित किया है। – ceejayoz

1

विच डिस्ट्रो क्या आप हैं? मैं उबंटू 10.04 एलटीएस (एमआई-एड 36 एफबीसी 4 का उपयोग टी 1.एमइक्रो पर कर रहा हूं)

मेरे पास नोडजेस के प्रीकंपिल्ड संस्करण के साथ एक ज़िप है, इससे मुझे अगली बार इसकी आवश्यकता होने पर संकलन समय छोड़ने में सक्षम बनाता है!

इस स्क्रिप्ट को रूट के रूप में चलाएं, या उपयोगकर्ता डेटा फ़ील्ड में रखें।

#!/bin/bash 

apt-get update -y 
apt-get upgrade -y 
apt-get install -y \ 
git-core build-essential \ 
    openssl \ 
    libssl-dev \ 
    zip \ 
    --fix-missing 

git clone http://github.com/joyent/node.git && cd node 
git checkout v0.4.12 
./configure 
JOBS=2 make 

cd 
zip -r node-v0.4.12-c.zip node 

git clone http://github.com/isaacs/npm.git && cd npm 
git checkout v1.0.104 && make install 

cd ../ 
rm -rf npm 
rm -rf node 

mkdir s3-uploader && cd s3-uploader 
npm install knox 

cat <uploader.js>> EOF 
var 
    knox = require('knox'), 
    fs = require('fs'); 

var client = knox.createClient({ 
    key: 'S3_API_KEY' 
    , secret: 'S3_API_SECRET' 
    , bucket: 'S3_BUCKET_ID' 
}); 

fs.readFile('../node-' + process.version + '-c.zip', function(err, buf){ 
    var req = client.put('node-' + process.version + '-c.zip', { 
     'Content-Length': buf.length 
    , 'Content-Type': 'text/plain' 
    }); 
    req.on('response', function(res){ 
    if (200 == res.statusCode) { 
     console.log('saved to %s', req.url); 
    } 
    }); 
    req.end(buf); 
}); 
EOF 

node uploader.js 

आप पहली बार सर्वर और अगली बार जब आप एक ही उदाहरण आप इस एक userdata अपने उदाहरण में डाल करने के लिए की तरह चलना समाप्त कर दें, और संकलन छोड़ सकते हैं।

#!/bin/bash 

wget –O node-v0.4.12-c.zip https://s3.amazonaws.com/[your-bucket-name]/node-[your-nodejs-version]-c.zip 
unzip node-[your-nodejs-version]-c.zip 
cd node 
make install 
cd ../ 
rm -rf node 
rm -rf node-[your-nodejs-version]-c.zip 
+0

हाय kilianc, मैं एक संकलित NodeJS कैसे प्राप्त कर सकते हैं? मैंने स्थानीय रूप से मेक कमांड चलाया, फिर आपने एस 3 पर अपलोड किया। जब मैं सर्वर पर "इंस्टॉल करना" करने का प्रयास करता हूं, तो उसने त्रुटि संदेश दिया। –

+0

आपको दूरस्थ से संकलित और अपलोड करना चाहिए! आपको एक एस 3 बाल्टी की आवश्यकता है, और एक t1.micro ubuntu उदाहरण। आपको उसी एएमआई पर नोडज को संकलित करना होगा जिसका आप इसका उपयोग करेंगे। एक बड़े उदाहरण से संकलित करने का प्रयास करें, इसमें लगभग 3/4 मिनट लगेंगे। आप किस विचलन पर खेल रहे हैं? – kilianc

+0

यह उबंटू एएमआई था। तब मैंने अपना निजी एएमआई बनाया और फिर से शुरू किया ताकि मेरे पास मूल आईडी न हो। –

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