読者です 読者をやめる 読者になる 読者になる

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