5

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

谢谢!

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

4

6 回答 6

4

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

  1. 启动一台大而强大的机器
  2. 编译最新的稳定 Node.js
  3. 安装 NPM,然后安装 Nave
  4. 使用 Nave 安装多个版本的 Node.js - 每个版本都有自己的 NPM。
  5. 将此保存为 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 位的,而 small 是 32 位的。

于 2011-07-18T21:55:17.277 回答
4

也许我迟到了,但是由于现在有适用于 Windows 的可安装 MSI 文件,您可以在以下位置下载与您的平台(32 位或 64 位)相对应的文件:

http://nodejs.org/download/

并使用 msiexec /qn 标志启动静默安装,检查这篇文章:

MSIEXEC 静默模式安装

node.js msi 安装程序现在非常简单,他们无需额外步骤即可在 PATH 上安装 node 和 npm。

于 2013-01-12T01:21:55.447 回答
2

假设您的脚本类似于:

git clone https://github.com/joyent/node.git
cd node
./configure
make

您能否仅在每个新实例上使用此处的结果,并继续:

sudo make install
curl http://npmjs.org/install.sh | sudo sh
于 2011-06-18T17:58:26.790 回答
1

我假设服务器都是相同的平台/内核,从 redhat/centos 环境说...为什么不在一台服务器上构建它然后将二进制文件打包成 RPM?然后,您可以在其他服务器上使用它。如果你在 Debian 环境中,我假设 deb 包也是一样的。

于 2011-06-18T17:57:00.893 回答
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
于 2011-07-25T04:07:47.190 回答
0

我赞同 James C 的建议,即构建适合您的操作系统分发的 RPM 或任何软件包系统,然后与您的服务器共享。

于 2012-10-08T19:04:06.510 回答