Bạn đang bật tính năng phân phối nào? Tôi đang sử dụng ubuntu 10.04 LTS (ami-ad36fbc4 trên t1.micro)
Tôi có mã zip với phiên bản được biên dịch sẵn của nút, điều này khiến tôi có thể bỏ qua thời gian biên dịch vào lần tới tôi cần!
Chạy tập lệnh này dưới dạng gốc hoặc đưa vào trường 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
bạn có thể chấm dứt máy chủ đầu tiên và lần tiếp theo bạn chạy cùng một phiên bản bạn phải đặt trong cá thể userdata của bạn và bỏ qua quá trình biên dịch.
#!/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
Bạn có thể thực thi "ps ux" trong máy EC2 để xem những quá trình nào đang chạy với người dùng cục bộ không? Nó có thể cung cấp cho một đầu mối đến nơi nó ngừng biên dịch. – Nican
Tôi đã biên dịch Node trên EC2 vi dụ 5-6 lần và nó không bao giờ mất hơn 10-12 phút mỗi lần. – alessioalex