无人参与安装node.js和npm,但不从源代码构build
有没有一种方法来安装node.js和npm无人参与的方式(与shell脚本),而不是从源代码构build? 我有一个基于服务器负载自动扩展的服务器arrays,但下载Node.js源代码并使用make构build需要10分钟。
谢谢!
编辑:我试图复制二进制文件,但导致了二进制文件已损坏的错误。 是的,他们都是EC2 m1.small实例。
假设你的脚本是这样的:
git clone https://github.com/joyent/node.git cd node ./configure make
你能不能在每个新实例中使用这里的结果,并继续:
sudo make install curl http://npmjs.org/install.sh | sudo sh
由于您使用的是EC2,因此您可以自行创buildAMI。 我find的最方便的方法是:
- 旋转一个大的,function强大的机器
- 编译最新的稳定的Node.js
- 安装NPM,然后Nave
- 使用Nave安装多个Node.js版本 – 每个版本都有自己的NPM。
- 保存为AMI
我通常根据项目[1]安装3-5个不同的版本,每个版本都有自己独立的模块。 Nave将沙箱不同的节点版本及其模块。
然后,一旦你设置了你喜欢的方式,你可以轻松地从这个主副本产生更多的服务器[2]。 你可以在技术上编译每个 Node.js版本,但是我不认为这是必要的。
[1]例如,Braintree模块当前需要Node.js@0.4.7,而主代码库位于Node.js@0.4.1上。
[2]只要你保持与体系结构一致,如果你在m1.xlarge上编译所有这些,你不能在m1.small上使用这个图像,因为xl是64位而小是32位的。
也许我迟到了,但是现在有Windows的可安装的MSI文件,你可以下载一个对应于你的平台(32或64位)的:
并使用msiexec / qn标志启动无提示安装,请检查此帖:
MSIEXEC静默模式安装
node.js msi的安装程序现在非常简单,他们会在PATH上安装node和npm,而不需要额外的步骤。
我假设服务器都是相同的平台/内核,从redhat / centos enviornment说…为什么不build立它在一台服务器上,然后将二进制文件打包到一个RPM? 然后你可以在其他服务器上使用它。 如果你在Debian环境中,我假设它和Deb软件包是一样的。
如果您使用的是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
我第二个詹姆斯C的build议,build立一个RPM或任何软件包系统适合您的操作系统分布,然后与您的服务器共享。