Node.js – Error: not found: make


I can't install any packages that requires node-gyp. The error message goes like this

$ npm install node-protobuf
info trying registry request attempt 1 at 22:43:57
http GET
http 200
npm http GET
npm http 200

> node-protobuf@1.0.8 install /home/whs/node_modules/node-protobuf
> node-gyp rebuild

gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack     at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:43:28)
gyp ERR! stack     at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:46:29)
gyp ERR! stack     at /usr/local/lib/node_modules/npm/node_modules/which/which.js:57:16
gyp ERR! stack     at Object.oncomplete (fs.js:107:15)
gyp ERR! System Linux 2.6.32-5-amd64
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/whs/node_modules/node-protobuf
gyp ERR! node -v v0.10.22
gyp ERR! node-gyp -v v0.12.1
gyp ERR! not ok
npm ERR! node-protobuf@1.0.8 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-protobuf@1.0.8 install script.
npm ERR! This is most likely a problem with the node-protobuf package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-protobuf
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 2.6.32-5-amd64
npm ERR! command "node" "/usr/local/bin/npm" "install" "node-protobuf"
npm ERR! cwd /home/whs/
npm ERR! node -v v0.10.22
npm ERR! npm -v 1.3.15
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/whs/npm-debug.log
npm ERR! not ok code 0

I also tried the protobuf package and got the exact same result.

Most search result says that this error is from missing make but in my case I have make installed. The node installation is even built from source manually on the machine.

Additional info:

  • Path: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
  • Make: GNU Make 3.81 installed in /usr/bin/make (from official Debian package)
  • Distro: Debian 6.0.8
  • Arch: amd64
  • Build-essential package: installed
  • Node: Manually built from source
  • Installation of non-gyp packages: work normally

Best Solution

I have found that I set 0754 permission on /usr/bin/make and a bug in which skip the file due to user's primary group is not the same as make's. I have filed a bug in node-which.

Related Question