有没有办法以无人值守的方式安装node.js和npm(使用shell脚本)而无需从源代码构建它?我有一组服务器可以根据服务器负载自动扩展,但下载Node.js源并使用make构建它需要10分钟。
谢谢!
编辑:我尝试复制二进制文件,但这导致二进制文件损坏的错误。是的,它们都是EC2 m1.small实例。
答案 0 :(得分:4)
由于您使用的是EC2,因此制作您自己的AMI可能会有所帮助。我找到的最方便的方法是:
我通常根据项目[1]安装3-5个不同版本,每个版本都有自己独立的模块。 Nave将对不同的Node版本及其模块进行沙盒化。
然后,一旦你按照自己喜欢的方式进行设置,就可以轻松地从这个主副本中生成更多的服务器[2]。如果你愿意,你可以在技术上编译 每个 Node.js版本,但我认为没有必要。
[1]例如,Braintree模块目前需要Node.js@0.4.7,而主代码库则在Node.js@0.4.1上。
[2]只要你与架构保持一致,如果你在m1.xlarge上编译所有这些,就不能在m1.small上使用图像,因为xl是64位而小是32位。
答案 1 :(得分:4)
也许我迟到了,但从现在开始有适用于Windows的可安装MSI文件,您可以在以下位置下载与您的平台(32或64位)相对应的文件:
并使用msiexec / qn标志启动静默安装,请查看以下帖子:
MSIEXEC Silent Mode Installation
node.js msi安装程序现在非常简单,他们将在PATH上安装node和npm而无需额外的步骤。
答案 2 :(得分:2)
假设你的脚本是这样的:
git clone https://github.com/joyent/node.git
cd node
./configure
make
您是否可以在每个新实例上使用此处的结果,并继续:
sudo make install
curl http://npmjs.org/install.sh | sudo sh
答案 3 :(得分:1)
我假设服务器都是相同的平台/内核,从redhat / centos环境说话...为什么不在一台服务器上构建它然后将二进制文件打包成RPM?然后,您可以在其他服务器上使用它。如果你在Debian环境中,我认为对deb软件包是一样的。
答案 4 :(得分:1)
如果您使用的是Ubuntu,也可以使用deb包(也可以用于其他基于Debian或Ubuntu的发行版):
http://blog.jetienne.com/2010/08/nodejs-deb-package-on-ubuntu-repository.html
sudo add-apt-repository ppa:jerome-etienne/neoip &&
sudo apt-get update &&
sudo apt-get install nodejs
...
$ node -v
v0.2.6
对于npm:
curl http://npmjs.org/install.sh | sudo sh
答案 5 :(得分:0)
我认为James C的建议是建立一个适合您的操作系统分发的RPM或任何软件包系统,然后与您的服务器共享。