簡體   English   中英

無人參與安裝node.js和npm,但不從源代碼構建它

[英]Unattended install of node.js and npm, but without building it from source

有沒有辦法以無人值守的方式(使用shell腳本)安裝node.js和npm而無需從源代碼構建它? 我有一組服務器可以根據服務器負載自動擴展,但下載Node.js源並使用make構建它需要10分鍾。

謝謝!

編輯:我嘗試復制二進制文件,但這導致二進制文件已損壞的錯誤。 是的,它們都是EC2 m1.small實例。

也許我遲到了,但從現在開始有適用於Windows的可安裝MSI文件,您可以下載與您的平台(32或64位)對應的文件:

http://nodejs.org/download/

並使用msiexec / qn標志啟動靜默安裝,請查看此帖子:

MSIEXEC靜默模式安裝

node.js msi安裝程序現在非常簡單,他們將在PATH上安裝node和npm而無需額外的步驟。

由於您使用的是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位而小是32位。

假設你的腳本是這樣的:

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

您是否可以在每個新實例上使用此處的結果,並繼續:

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

我假設服務器都是相同的平台/內核,從redhat / centos環境說起......為什么不在一台服務器上構建它然后將二進制文件打包成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

我的第二個James C的建議是構建一個適合您的操作系統分發的RPM或任何軟件包系統,然后與您的服務器共享它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM