21世紀に捧げる

アプリ個人開発・ものづくり、主に技術系の内容をお送りします。

Ubuntu上に node.jsモジュールをインストールしようとしたときの build error 対応


スポンサードリンク
 

前置き

こんにちは。node.js 1ヶ月生です。
JavaScriptでサーバーも完結してしまうのは楽しいです!
ということで、Windows Azure 上に Ubuntu OS にて Linux サーバーを立てました。


問題

WebSocket 用の node.js モジュール ws をインストールしようとして
エラーが出て怒られたのでメモ。

$ sudo npm install -g ws
/
> utf-8-validate@1.1.0 install /usr/lib/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

gyp ERR! build error 
gyp ERR! stack Error: not found: make
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:72:28)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:75:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:83:16
gyp ERR! stack     at Object.oncomplete (fs.js:108:15)
gyp ERR! System Linux 3.13.0-49-generic
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/ws/node_modules/utf-8-validate
gyp ERR! node -v v0.10.37
gyp ERR! node-gyp -v v1.0.3
gyp ERR! not ok 

> bufferutil@1.1.0 install /usr/lib/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

gyp ERR! build error 
gyp ERR! stack Error: not found: make
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:72:28)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:75:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:83:16
gyp ERR! stack     at Object.oncomplete (fs.js:108:15)
gyp ERR! System Linux 3.13.0-49-generic
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/ws/node_modules/bufferutil
gyp ERR! node -v v0.10.37
gyp ERR! node-gyp -v v1.0.3
gyp ERR! not ok 
npm WARN optional dep failed, continuing utf-8-validate@1.1.0
npm WARN optional dep failed, continuing bufferutil@1.1.0
ws@0.7.2 /usr/lib/node_modules/ws
├── options@0.0.6
└── ultron@1.0.1

対策

apt-get で build-essential をインストールすると上手くいきました。
Ubuntu OS 限定?

$ sudo apt-get update
$ sudo apt-get install build-essential

途中で空き領域〜MB必要ですよ、継続しますか? y/n を聞かれるので、y(イエス)。

$ sudo npm install -g ws
|
> utf-8-validate@1.1.0 install /usr/lib/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory `/usr/lib/node_modules/ws/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
  COPY Release/validation.node
make: Leaving directory `/usr/lib/node_modules/ws/node_modules/utf-8-validate/build'

> bufferutil@1.1.0 install /usr/lib/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory `/usr/lib/node_modules/ws/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
  COPY Release/bufferutil.node
make: Leaving directory `/usr/lib/node_modules/ws/node_modules/bufferutil/build'
ws@0.7.2 /usr/lib/node_modules/ws
├── options@0.0.6
├── ultron@1.0.1
├── utf-8-validate@1.1.0 (bindings@1.2.1, nan@1.8.4)
└── bufferutil@1.1.0 (bindings@1.2.1, nan@1.8.4)


参考リンク
http://stackoverflow.com/questions/14772508/npm-failed-to-install-time-with-make-not-found-error