Quale distro sei? Sto usando Ubuntu 10.04 LTS (ami-ad36fbc4 su un t1.micro)
Ho un file zip con una versione precompilata di nodejs, questo mi permette di saltare il tempo di compilazione la prossima volta che ne ho bisogno!
Eseguire questo script come root o inserire il campo userdata.
#!/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
è possibile terminare il primo server e la prossima volta che si esegue la stessa istanza si deve mettere nel vostro caso datiutente questo, e saltare la compilazione.
#!/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
È possibile eseguire "ps ux" nella macchina EC2 per vedere quali processi sono in esecuzione con l'utente locale? Potrebbe dare un indizio su dove ha smesso di compilare. – Nican
Ho compilato il nodo sulla mia istanza micro EC2 5-6 volte e non richiede mai più di 10-12 minuti ogni volta. – alessioalex