Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无人参与安装node.js和npm,但不从源代码构建_Node.js_Npm - Fatal编程技术网

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

无人参与安装node.js和npm,但不从源代码构建,node.js,npm,Node.js,Npm,有没有一种方法可以以无人参与的方式(使用shell脚本)安装node.js和npm,而无需从源代码构建?我有一个服务器阵列,可以根据服务器负载自动扩展,但是下载Node.js源代码并使用make构建它需要10分钟 谢谢 编辑:我试图复制二进制文件,但这导致了一个错误,即二进制文件已损坏。是的,它们都是EC2 m1.small实例。我假设服务器都是相同的平台/内核,从redhat/centos环境来说。。。为什么不在一台服务器上构建它,然后将二进制文件打包成RPM?然后,您可以在其他服务器上使用它

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

谢谢


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

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

假设您的脚本类似于:

git clone https://github.com/joyent/node.git
cd node
./configure
make
您是否可以在每个新实例上使用此处的结果,然后继续:

sudo make install
curl http://npmjs.org/install.sh | sudo sh

因为您使用的是EC2,所以它可能有助于创建您自己的AMI。我发现最方便的方法是:

  • 启动一台大而有力的机器
  • 编译最新的stable Node.js
  • 安装NPM,然后安装中堂
  • 使用Nave安装多个版本的Node.js-每个版本都有自己的NPM
  • 将此保存为AMI
  • 根据项目[1],我通常安装3-5个不同的版本,每个版本都有自己的独立模块。Nave将沙箱化不同的节点版本及其模块

    然后,一旦您按照您喜欢的方式设置了它,您就可以很容易地从此主副本中生成更多服务器[2]。如果愿意,您可以从技术上编译每一个Node.js版本,但我认为这不是必需的

    [1] 例如,Braintree模块当前需要节点。js@0.4.7而主代码库位于节点上。js@0.4.1.

    [2] 只要与体系结构保持一致,如果在m1.xlarge上编译所有这些,就不能在m1.small上使用映像,因为xl是64位的,small是32位的

    如果您正在使用Ubuntu,还有一个deb包(可能也适用于其他Debian或基于Ubuntu的发行版):

    对于npm:

    curl http://npmjs.org/install.sh | sudo sh
    

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

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

    并使用msiexec/qn标志启动静默安装,请查看以下帖子:


    node.js msi安装程序现在非常先进,他们将在路径上安装node和npm,无需额外步骤。

    我这样做了,将内容放入tarball,并指示shell脚本下载此文件,卸载它,然后继续,但后来我收到一个错误,它无法执行该文件。让我再试一试。以这种方式安装NPM会给出提示:“此脚本将查找并删除NPM 0.x安装的任何垫片、符号链接和其他积垢。是否可以?输入‘是’或‘否’”。是否有办法绕过输入提示?
    $ node -v
    v0.2.6
    
    curl http://npmjs.org/install.sh | sudo sh