无人参与安装node.js和npm,但不从源代码构建它

时间:2011-06-18 17:40:19

标签: node.js npm

有没有办法以无人值守的方式安装node.js和npm(使用shell脚本)而无需从源代码构建它?我有一组服务器可以根据服务器负载自动扩展,但下载Node.js源并使用make构建它需要10分钟。

谢谢!

编辑:我尝试复制二进制文件,但这导致二进制文件损坏的错误。是的,它们都是EC2 m1.small实例。

6 个答案:

答案 0 :(得分:4)

由于您使用的是EC2,因此制作您自己的AMI可能会有所帮助。我找到的最方便的方法是:

  1. 启动一台功能强大的大型机器
  2. 编译最新的稳定Node.js
  3. 安装NPM,然后安装Nave
  4. 使用Nave安装多个版本的Node.js - 每个版本都有自己的NPM。
  5. 将其另存为AMI
  6. 我通常根据项目[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位)相对应的文件:

http://nodejs.org/download/

并使用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或任何软件包系统,然后与您的服务器共享。