nodejs / node-gyp

Node.js native addon build tool
MIT License
9.78k stars 1.78k forks source link

trying to 'npm install', getting node-gyp rebuild errors #809

Closed brascosDad closed 8 years ago

brascosDad commented 8 years ago
ernestscomputer:musicomp ernest son$ npm install

> bufferutil@1.2.1 install /Users/ernest son/Desktop/PROJECTS/musicomp/node_modules/bufferutil
> node-gyp rebuild

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/include/node'
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/src'
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/deps/uv/include'
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/deps/v8/include'
make: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 14.5.0
gyp ERR! command "/usr/local/Cellar/node/5.0.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/ernest son/Desktop/PROJECTS/musicomp/node_modules/bufferutil
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
npm WARN install:bufferutil@1.2.1 bufferutil@1.2.1 install: `node-gyp rebuild`
npm WARN install:bufferutil@1.2.1 Exit status 1

> utf-8-validate@1.2.1 install /Users/ernest son/Desktop/PROJECTS/musicomp/node_modules/utf-8-validate
> node-gyp rebuild

  CXX(target) Release/obj.target/validation/src/validation.o
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/include/node'
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/src'
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/deps/uv/include'
clang: error: no such file or directory: 'son/.node-gyp/5.0.0/deps/v8/include'
make: *** [Release/obj.target/validation/src/validation.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 14.5.0
gyp ERR! command "/usr/local/Cellar/node/5.0.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/ernest son/Desktop/PROJECTS/musicomp/node_modules/utf-8-validate
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
npm WARN install:utf-8-validate@1.2.1 utf-8-validate@1.2.1 install: `node-gyp rebuild`
npm WARN install:utf-8-validate@1.2.1 Exit status 1
xgqfrms-GitHub commented 7 years ago

https://github.com/nodejs/node/issues/8939

ItsThisGuyAgain commented 7 years ago

Thanks @JxnGraphix, your solution worked for me!

Aleksei7 commented 7 years ago

I had the same issue. The problem was in the user's folder name, that was in Cyrillic. I created new profile and followed this instructions https://github.com/nodejs/node-gyp. It helped me

iPenguin commented 7 years ago

I solved my problem when I realized that I had an apt-get installed version of nodejs and nvm / npm installed node. Removed the system installed version and created a soft link from nodejs to node and it worked.

khiettran commented 7 years ago

I got the same error and I solved by running the following command: sudo npm install -g node-gyp@3.4.0

Nodejs - v7.2.0 Npm - 4.0.3

webdigi commented 7 years ago

Had the same issue and nothing would work. Finally had to go to node 0.10.26 on the pi.

Used NVM instead of direct node install.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash nvm install 0.10.26

gerrytan commented 7 years ago

On Windows 10 ubuntu bash, installing build-essential using apt-get install build-essential and rerunning npm install solves the problem

drjasonharrison commented 7 years ago

I was able to reproduce this problem on OSX 10.11.6 when building a project that had a dependency of "java": "^0.6.0" changing that to "java": ">=0.6.0" worked fine after installing Java 7 and/or Java 8 SDK.

EvgeniyGorbachev commented 7 years ago

I have a similar problem, Please tell me, Is this a problem with the node version or something else? I tried different versions node 4.., 5..., 6.. - not working

gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR make: Entering directory /var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/utf-8-validate/build' CXX(target) Release/obj.target/validation/src/validation.o In file included from ../src/validation.cc:15:0: ../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’ NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) { ^ ../node_modules/nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) { ^ ../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’ , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’: ../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’: ../node_modules/nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous return node::Buffer::New(v8::Isolate::GetCurrent(), data, size); ^ ../node_modules/nan/nan.h:672:67: note: candidates are: In file included from ../src/validation.cc:10:0: /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:34:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:34:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:46:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:46:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’ In file included from ../src/validation.cc:15:0: ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’: ../node_modules/nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’ return node::Buffer::New(v8::Isolate::GetCurrent(), size); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’: ../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’ return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size); ^ make: *** [Release/obj.target/validation/src/validation.o] Error 1 make: Leaving directory/var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/utf-8-validate/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/zhenya/.nvm/versions/node/v4.6.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) gyp ERR! System Linux 3.13.0-101-generic gyp ERR! command "/home/zhenya/.nvm/versions/node/v4.6.1/bin/node" "/home/zhenya/.nvm/versions/node/v4.6.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/utf-8-validate gyp ERR! node -v v4.6.1 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok

bufferutil@1.1.0 install /var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/bufferutil node-gyp rebuild

gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR make: Entering directory /var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/bufferutil/build' CXX(target) Release/obj.target/bufferutil/src/bufferutil.o In file included from ../src/bufferutil.cc:16:0: ../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’ NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) { ^ ../node_modules/nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) { ^ ../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’ , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’: ../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’: ../node_modules/nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous return node::Buffer::New(v8::Isolate::GetCurrent(), data, size); ^ ../node_modules/nan/nan.h:672:67: note: candidates are: In file included from ../src/bufferutil.cc:10:0: /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:34:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:34:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:46:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/zhenya/.node-gyp/4.6.1/include/node/node_buffer.h:46:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’ In file included from ../src/bufferutil.cc:16:0: ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’: ../node_modules/nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’ return node::Buffer::New(v8::Isolate::GetCurrent(), size); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’: ../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’ return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size); ^ make: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1 make: Leaving directory/var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/bufferutil/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/zhenya/.nvm/versions/node/v4.6.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) gyp ERR! System Linux 3.13.0-101-generic gyp ERR! command "/home/zhenya/.nvm/versions/node/v4.6.1/bin/node" "/home/zhenya/.nvm/versions/node/v4.6.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /var/www/simple-comm-client.local/fe/node_modules/protractor/node_modules/selenium-webdriver/node_modules/ws/node_modules/bufferutil gyp ERR! node -v v4.6.1 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok npm WARN optional dep failed, continuing utf-8-validate@1.1.0

webben-de commented 7 years ago

honestly i didn't read all of the stack traces here but i found in a line of mine, that something did not found the g++ lib. So i installed that and then it works for me.

sudo apt-get install g++

Worked for me

EDIT: System: "Ubuntu 14.04.5 LTS" Node: per NVM 4.7.0 NPM: 2.15.11

borislemke commented 7 years ago

Here's my case what fixed it:

I used nvm and had 7.2.1 installed.

  1. Removed nvm brew uninstall nvm
  2. Surely remove node, sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}
  3. Install node@6.9.2 brew install node@6 Errors gone!
Nezteb commented 7 years ago

MAC USERS. @mrmoss and I figured (part of) this out. At least in regards to certain packages that depend on node-gyp.

POSIX definitions are different for GCC and Clang.

If you use gcc an it redirects to clang, then you'll have issues with a lot of packages that use node-gyp. You can get around it by installing GCC with homebrew via brew install gcc (and manually moving the old gcc in /usr/bin and symlinking the new gcc there).

Obviously this could have huge repercussions for other packages and such, but... that might be part of your problem.

mrmoss commented 7 years ago

I'm not sure this is the same issue. The errors were fairly straight forward for the terminal package we were using:

  CXX(target) Release/obj.target/termios/src/termios.o
../src/termios.cpp:31:10: error: use of undeclared identifier 'B460800'
{460800, B460800},
         ^
../src/termios.cpp:32:10: error: use of undeclared identifier 'B500000'
{500000, B500000},
         ^
../src/termios.cpp:33:10: error: use of undeclared identifier 'B576000'
{576000, B576000},
         ^
../src/termios.cpp:34:10: error: use of undeclared identifier 'B921600'
{921600, B921600},
         ^
../src/termios.cpp:35:11: error: use of undeclared identifier 'B1000000'
{1000000, B1000000},
          ^
../src/termios.cpp:36:11: error: use of undeclared identifier 'B1152000'
{1152000, B1152000},
          ^
../src/termios.cpp:37:11: error: use of undeclared identifier 'B1500000'
{1500000, B1500000},
          ^
../src/termios.cpp:38:11: error: use of undeclared identifier 'B2000000'
{2000000, B2000000},
          ^
../src/termios.cpp:39:11: error: use of undeclared identifier 'B2500000'
{2500000, B2500000},
          ^
../src/termios.cpp:40:11: error: use of undeclared identifier 'B3000000'
{3000000, B3000000},
          ^
../src/termios.cpp:41:11: error: use of undeclared identifier 'B3500000'
{3500000, B3500000},
          ^
../src/termios.cpp:42:11: error: use of undeclared identifier 'B4000000'
{4000000, B4000000},
          ^
../src/termios.cpp:86:18: error: use of undeclared identifier 'CBAUD'
                        t.c_cflag &= ~CBAUD;
                                      ^
../src/termios.cpp:106:38: error: use of undeclared identifier 'CBAUD'
        int baud = mask_to_baud(t.c_cflag & CBAUD);

Upon searching similar macOS errors, this seems to be a known issue between the macOS and GNU headers.

mpmadhuranga commented 7 years ago

Any one has idea about this error..

gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Linux 2.6.32-642.4.2.el6.x86_64 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/otenro/Otenro/node_modules/lwip gyp ERR! node -v v6.9.2 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm ERR! Linux 2.6.32-642.4.2.el6.x86_64 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" npm ERR! node v6.9.2 npm ERR! npm v3.10.9 npm ERR! code ELIFECYCLE

npm ERR! lwip@0.0.9 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the lwip@0.0.9 install script 'node-gyp rebuild'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the lwip 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 information on how to open an issue for this project with: npm ERR! npm bugs lwip npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls lwip npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:

I removed .node-gyp and npm update but it didnt work.

bnoordhuis commented 7 years ago

@madhurangaonbit It's right there in the error message...

Unsupported platform for fsevents@1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

mpmadhuranga commented 7 years ago

Nope everything is working fine in local machine with below config node -v v6.9.2 npm -v 3.10.9 Ubuntu 16.10

Issue comes up on Cent Os v6+

Any idea??

bnoordhuis commented 7 years ago

Looking at what you posted again, I think you omitted the actual build error; fsevents is just a red herring.

My money is on your system's compiler being too old.

daslicht commented 7 years ago

same here: https://github.com/videojs/video.js/issues/3877

JSONRice commented 7 years ago

This is still an issue for CentOS 6+ @madhurangaonbit I followed the instructions on this SO post and managed to resolved node-gyp:

http://stackoverflow.com/questions/36327805/how-to-install-gcc-5-3-with-yum-on-centos-7-2

Cheers.

mpmadhuranga commented 7 years ago

@jasonwr thankz

klemenoslaj commented 7 years ago

Problem exist with following configuration as well: node -v: 7.3.0 npm -v: 4.1.1

macOS Sierra Version 10.12.2

But it works with node 6.9.2.

gibfahn commented 7 years ago

@klemenoslaj Could you open a new issue with information about your actual failure (what you ran, what the errors were). Did you follow the dependency installation instructions in the README?

Also did you upgrade your npm version? node v7.3.0 seems to come with npm v3.10.10 by default.

ahoereth commented 7 years ago

Updating to gcc 5 fixed this for me.

lattice0 commented 7 years ago

same here when installing zmq (zero mq) https://github.com/JustinTulloss/zeromq.node/issues/586

davidawad commented 7 years ago

Having this issue on a 2013 Macbook air running Latest MacOS. I'm specifically trying to install the dependencies for soundcast : https://github.com/andresgottlieb/soundcast/tree/master/archive

gibfahn commented 7 years ago

@DavidAwad node-gyp rebuild errors are basically compile errors, and are usually a problem with the package you're trying to compile (if your program doesn't compile, 99% of the time it's not the compiler's fault).

In this case the package you're trying to install has an outdated dependency chromecast-osx-audio v0.2.0, which itself depends on osx-audio v0.2.0. This is broken. Updating to the latest version fixes the issue. Looking at the npm-debug.log (as the error message tells you to do) tells you where the problem occurred, and what to do about it (this is most likely a problem with the osx-audio package, contact the package author etc.).

The package you're trying to install is unmaintained, you'll probably need to at least update the dependencies. Updating chromecast-osx-audio got it to install for me (although you'll probably have other issues getting it to actually run).

diff --git a/archive/package.json b/archive/package.json
index be55cfa..1841dec 100644
--- a/archive/package.json
+++ b/archive/package.json
@@ -8,7 +8,7 @@
     "url": "https://github.com/andresgottlieb/soundcast"
   },
   "dependencies": {
-    "chromecast-osx-audio": "^0.3.0",
+    "chromecast-osx-audio": "^1.0.1",
     "menubar": "2.3.0",
     "shelljs": "0.5.3"
   },

npm-debug.log

22404 verbose stack Error: osx-audio@0.2.0 install: `node-gyp rebuild`
22404 verbose stack Exit status 1
22404 verbose stack     at EventEmitter.<anonymous> (/Users/gib/.nvm/versions/node/v6.10.0/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
22404 verbose stack     at emitTwo (events.js:106:13)
22404 verbose stack     at EventEmitter.emit (events.js:191:7)
22404 verbose stack     at ChildProcess.<anonymous> (/Users/gib/.nvm/versions/node/v6.10.0/lib/node_modules/npm/lib/utils/spawn.js:40:14)
22404 verbose stack     at emitTwo (events.js:106:13)
22404 verbose stack     at ChildProcess.emit (events.js:191:7)
22404 verbose stack     at maybeClose (internal/child_process.js:877:16)
22404 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
22405 verbose pkgid osx-audio@0.2.0
22406 verbose cwd /Users/gib/tmp/soundcast/archive
22407 error Darwin 16.4.0
22408 error argv "/Users/gib/.nvm/versions/node/v6.10.0/bin/node" "/Users/gib/.nvm/versions/node/v6.10.0/bin/npm" "i"
22409 error node v6.10.0
22410 error npm  v3.10.10
22411 error code ELIFECYCLE
22412 error osx-audio@0.2.0 install: `node-gyp rebuild`
22412 error Exit status 1
22413 error Failed at the osx-audio@0.2.0 install script 'node-gyp rebuild'.
22413 error Make sure you have the latest version of node.js and npm installed.
22413 error If you do, this is most likely a problem with the osx-audio package,
22413 error not with npm itself.
22413 error Tell the author that this fails on your system:
22413 error     node-gyp rebuild
22413 error You can get information on how to open an issue for this project with:
22413 error     npm bugs osx-audio
22413 error Or if that isn't available, you can get their info via:
22413 error     npm owner ls osx-audio
gibfahn commented 7 years ago

same here when installing zmq (zero mq) JustinTulloss/zeromq.node#586

@lucaszanella looks like an issue with the module.

wdeer commented 7 years ago

sorry, i didn't read all of the above, but if your .npmrc has a path to python try removing it and running node-gyp rebuild again, this resolved the issue for me.. this was after i ran npm uninstall -g node-gyp && npm install -g node-gyp && rm -rf .node-gyp/ but i think just removing the path in my .npmrc was all that really mattered.

note: i use nodenv with node v6.9.2 / npm v3.10.9

amrendraw3 commented 7 years ago

I don't know why but I found a solution and worked for me every time. Just simply install build-essential

sudo apt-get update
sudo apt-get install build-essential
gibfahn commented 7 years ago

I don't know why but I found a solution and worked for me every time. Just simply install build-essential

@amrendraw3 yep, that should work. See the node-gyp README:

You will also need to install:

  • python (v2.7 recommended, v3.x.x is not supported)
  • make
  • A proper C/C++ compiler toolchain, like GCC

According to its docs, build-essential contains gcc/g++ and make, so if you also have python 2 on the system as well (I think it comes by default in Ubuntu) then you have all the dependencies node-gyp needs.

taylorstine commented 7 years ago

Using ubuntu 16.02 I fixed the problem by install node using the method listed under "How to Install Using a PPA", rather than just using apt-get install https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04

gibfahn commented 7 years ago

Using ubuntu 16.02 I fixed the problem by install node using the method listed under "How to Install Using a PPA", rather than just using apt-get install

Yep, that just adds the ppa, does an apt-get install of nodejs and npm, and then does sudo apt-get install build-essential, giving you node, npm, and the required build tools.

ronak-itility commented 7 years ago

'restify-json-body-parser' this package created the issue. After removing it, all went well.

junajan commented 7 years ago

Comment from @ByScripts helped me .. thx

itsNikolay commented 7 years ago

Full installation node-gyp@3.4.0 on Ubuntu 16 with node 4.4.5:

cd my_app

npm init

apt-get install build-essential
apt-get install gcc
apt-get install pkg-config
apt-get install libcairo2-dev # not sure about it
apt-get install libpng-dev # not sure about it
apt-get install libjpeg-dev # not sure about it
apt-get install libgif-dev # not sure about it
apt-get install g++ gyp

wget https://raw.githubusercontent.com/XadillaX/aliyun-ons/master/binding.gyp

npm install node-gyp

I hope it will help somebody

sesan commented 7 years ago

I keep having this error after typing in npm install in my project

> bcrypt@1.0.2 install C:\Users\sesan.osanyinbi\Documents\My Web Sites\vggdev\node_modules\bcrypt
> node-pre-gyp install --fallback-to-build

'node-pre-gyp' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bcrypt@1.0.2 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@1.0.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\sesan.osanyinbi\AppData\Roaming\npm-cache\_logs\2017-06-28T16_08_03_876Z-debug.log
nikolaevigor commented 6 years ago

macOS High Sierra. Problem has appeared on two computers. Deleted yarn.lock and package-lock.json (not sure that it's necessary) Deleted /Users/<username>/.atom/.node-gyp then yarn install and at least I am able to run yarn install without errors. Still erroring when yarn add packages.

P.S. You can locate your .node-gyp files with this command find / -name '.node-gyp' 2>/dev/null

lkrubner commented 6 years ago

My problem started off as a problem with me not having some MySQL library installed, but now I face this:

npm ERR! mysql-libmysqlclient@1.6.0 install: `node-gyp rebuild`
npm ERR! Exit status 1

I've tried most of the fixes that have been suggested up above by others facing similar issues. Following the above advice I did:

rm -rf ~/.node-gyp

This had no effect.

I also deleted the node_modules folder and reinstalled everything. This had no effect.

The background:

using npm@4.2.0 using node@v6.9.3

Running on AWS with Amazon Linux, which is an offshoot of RedHat.

I'm working for a client who has set me up with an EC2 instance where I should do some work. I'd been building an API locally, and now I transferred it to the EC2 instance. I ssh to the server and cd to the directory. I try this:

npm install mysql-libmysqlclient

Initially I got an error about "mysql_config" not being installed. This EC2 instance does not run MySQL and does not have it installed. So I sudo and:

 yum install mysql

That didn't fix the problem, so I kept adding more stuff:

 yum install mysql mysql-server

At some point I got the error "Can't install 'mysql.h' file not found" so I kept adding stuff:

 yum install libmysqlclient-dev
 yum install mysql-devel.noarch   mysql-libs.noarch   mysql-common.noarch   
 yum install -y mysql-devel

Some of the errors seem to do with node-gyp, however, if I do this:

 npm install -g node-gyp

then this installs without a problem.

And yet, if I run npm install mysql-libmysqlclient the make output seems to die with a message about node-gyp:

> mysql-libmysqlclient@1.6.0 install /home/ec2-user/daemons/deduplication_api/v11/dupe-res/node_modules/mysql-libmysqlclient
> node-gyp rebuild

make: Entering directory `/home/ec2-user/daemons/deduplication_api/v11/dupe-res/node_modules/mysql-libmysqlclient/build'
  CXX(target) Release/obj.target/mysql_bindings/src/mysql_bindings.o
In file included from ../src/././mysql_bindings.h:14:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
../../nan/nan.h: In function ‘v8::Handle<v8::Value> NanError(const char*)’:
../../nan/nan.h:319:38: error: ‘New’ is not a member of ‘v8::String’
 # define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                      ^
../../nan/nan.h:339:13: note: in expansion of macro ‘_NAN_ERROR’
     return  _NAN_ERROR(v8::Exception::Error, errmsg);
             ^
../../nan/nan.h: In function ‘void NanThrowError(const char*)’:
../../nan/nan.h:324:7: error: ‘ThrowException’ is not a member of ‘v8’
       v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
       ^
../../nan/nan.h:343:5: note: in expansion of macro ‘_NAN_THROW_ERROR’
     _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
     ^
../../nan/nan.h:319:38: error: ‘New’ is not a member of ‘v8::String’
 # define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                      ^
../../nan/nan.h:324:26: note: in expansion of macro ‘_NAN_ERROR’
       v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
                          ^
../../nan/nan.h:343:5: note: in expansion of macro ‘_NAN_THROW_ERROR’
     _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
     ^
../../nan/nan.h: In function ‘void NanThrowError(v8::Handle<v8::Value>)’:
../../nan/nan.h:348:5: error: ‘ThrowException’ is not a member of ‘v8’
     v8::ThrowException(error);
     ^
../../nan/nan.h: In function ‘v8::Handle<v8::Value> NanError(const char*, int)’:
../../nan/nan.h:355:53: error: ‘New’ is not a member of ‘v8::String’
     v8::Local<v8::Value> err = v8::Exception::Error(v8::String::New(msg));
                                                     ^
../../nan/nan.h:357:14: error: ‘New’ is not a member of ‘v8::String’
     obj->Set(v8::String::New("code"), v8::Int32::New(errorNumber));
              ^
../../nan/nan.h:357:65: error: no matching function for call to ‘v8::Int32::New(const int&)’
     obj->Set(v8::String::New("code"), v8::Int32::New(errorNumber));
                                                                 ^
../../nan/nan.h:357:65: note: candidate is:
In file included from /home/ec2-user/.node-gyp/6.9.3/include/node/node.h:42:0,
                 from ../src/mysql_bindings.cc:12:
/home/ec2-user/.node-gyp/6.9.3/include/node/v8.h:2558:25: note: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^
/home/ec2-user/.node-gyp/6.9.3/include/node/v8.h:2558:25: note:   candidate expects 2 arguments, 1 provided
In file included from ../src/././mysql_bindings.h:14:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
../../nan/nan.h: In function ‘v8::Handle<v8::Value> NanTypeError(const char*)’:
../../nan/nan.h:319:38: error: ‘New’ is not a member of ‘v8::String’
 # define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                      ^
../../nan/nan.h:369:12: note: in expansion of macro ‘_NAN_ERROR’
     return _NAN_ERROR(v8::Exception::TypeError, errmsg);
            ^
../../nan/nan.h: In function ‘void NanThrowTypeError(const char*)’:
../../nan/nan.h:324:7: error: ‘ThrowException’ is not a member of ‘v8’
       v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
       ^
../../nan/nan.h:373:5: note: in expansion of macro ‘_NAN_THROW_ERROR’
     _NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
     ^
../../nan/nan.h:319:38: error: ‘New’ is not a member of ‘v8::String’
 # define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                      ^
../../nan/nan.h:324:26: note: in expansion of macro ‘_NAN_ERROR’
       v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
                          ^
../../nan/nan.h:373:5: note: in expansion of macro ‘_NAN_THROW_ERROR’
     _NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
     ^
../../nan/nan.h: In function ‘v8::Handle<v8::Value> NanRangeError(const char*)’:
../../nan/nan.h:319:38: error: ‘New’ is not a member of ‘v8::String’
 # define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                      ^
../../nan/nan.h:377:12: note: in expansion of macro ‘_NAN_ERROR’
     return _NAN_ERROR(v8::Exception::RangeError, errmsg);
            ^
../../nan/nan.h: In function ‘void NanThrowRangeError(const char*)’:
../../nan/nan.h:324:7: error: ‘ThrowException’ is not a member of ‘v8’
       v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
       ^
../../nan/nan.h:381:5: note: in expansion of macro ‘_NAN_THROW_ERROR’
     _NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
     ^
../../nan/nan.h:319:38: error: ‘New’ is not a member of ‘v8::String’
 # define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                      ^
../../nan/nan.h:324:26: note: in expansion of macro ‘_NAN_ERROR’
       v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
                          ^
../../nan/nan.h:381:5: note: in expansion of macro ‘_NAN_THROW_ERROR’
     _NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
     ^
../../nan/nan.h: At global scope:
../../nan/nan.h:406:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../../nan/nan.h:141:71: note: in definition of macro ‘NAN_INLINE’
 # define NAN_INLINE(declarator) inline __attribute__((always_inline)) declarator
                                                                       ^
../../nan/nan.h:406:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../../nan/nan.h:141:71: note: in definition of macro ‘NAN_INLINE’
 # define NAN_INLINE(declarator) inline __attribute__((always_inline)) declarator
                                                                       ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../../nan/nan.h:409:44: error: ‘callback’ was not declared in this scope
     return node::Buffer::New(data, length, callback, hint);
                                            ^
../../nan/nan.h:409:54: error: ‘hint’ was not declared in this scope
     return node::Buffer::New(data, length, callback, hint);
                                                      ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, uint32_t)’:
../../nan/nan.h:416:40: error: no matching function for call to ‘New(char*&, uint32_t&)’
     return node::Buffer::New(data, size);
                                        ^
../../nan/nan.h:416:40: note: candidates are:
In file included from ../src/././mysql_bindings.h:12:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, size_t)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:31:40: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:34:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:34:40: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:39:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t, node::Buffer::FreeCallback, void*)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:39:40: note:   candidate expects 5 arguments, 2 provided
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:46:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:46:40: note:   candidate expects 3 arguments, 2 provided
In file included from ../src/././mysql_bindings.h:14:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../../nan/nan.h:420:34: error: no matching function for call to ‘New(uint32_t&)’
     return node::Buffer::New(size);
                                  ^
../../nan/nan.h:420:34: note: candidates are:
In file included from ../src/././mysql_bindings.h:12:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, size_t)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:31:40: note:   candidate expects 2 arguments, 1 provided
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:34:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:34:40: note:   candidate expects 3 arguments, 1 provided
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:39:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t, node::Buffer::FreeCallback, void*)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:39:40: note:   candidate expects 5 arguments, 1 provided
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:46:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t)
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/node_buffer.h:46:40: note:   candidate expects 3 arguments, 1 provided
In file included from ../src/././mysql_bindings.h:14:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../../nan/nan.h:427:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(data, size);
            ^
../../nan/nan.h: In constructor ‘NanCallback::NanCallback()’:
../../nan/nan.h:727:49: error: no matching function for call to ‘v8::Object::New()’
     v8::Local<v8::Object> obj = v8::Object::New();
                                                 ^
../../nan/nan.h:727:49: note: candidate is:
In file included from /home/ec2-user/.node-gyp/6.9.3/include/node/node.h:42:0,
                 from ../src/mysql_bindings.cc:12:
/home/ec2-user/.node-gyp/6.9.3/include/node/v8.h:3006:24: note: static v8::Local<v8::Object> v8::Object::New(v8::Isolate*)
   static Local<Object> New(Isolate* isolate);
                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/v8.h:3006:24: note:   candidate expects 1 argument, 0 provided
In file included from ../src/././mysql_bindings.h:14:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
../../nan/nan.h: In constructor ‘NanCallback::NanCallback(v8::Handle<v8::Function>&)’:
../../nan/nan.h:733:49: error: no matching function for call to ‘v8::Object::New()’
     v8::Local<v8::Object> obj = v8::Object::New();
                                                 ^
../../nan/nan.h:733:49: note: candidate is:
In file included from /home/ec2-user/.node-gyp/6.9.3/include/node/node.h:42:0,
                 from ../src/mysql_bindings.cc:12:
/home/ec2-user/.node-gyp/6.9.3/include/node/v8.h:3006:24: note: static v8::Local<v8::Object> v8::Object::New(v8::Isolate*)
   static Local<Object> New(Isolate* isolate);
                        ^
/home/ec2-user/.node-gyp/6.9.3/include/node/v8.h:3006:24: note:   candidate expects 1 argument, 0 provided
In file included from ../src/././mysql_bindings.h:14:0,
                 from ../src/./mysql_bindings_connection.h:22,
                 from ../src/mysql_bindings.cc:17:
../../nan/nan.h: In destructor ‘NanCallback::~NanCallback()’:
../../nan/nan.h:740:12: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘Dispose’
     handle.Dispose();
            ^
../../nan/nan.h:741:12: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘Clear’
     handle.Clear();
            ^
../../nan/nan.h: In member function ‘void NanCallback::SetFunction(v8::Handle<v8::Function>&)’:
../../nan/nan.h:181:26: error: ‘NewSymbol’ is not a member of ‘v8::String’
 #define NanSymbol(value) v8::String::NewSymbol(value)
                          ^
../../nan/nan.h:746:39: note: in expansion of macro ‘NanSymbol’
     NanPersistentToLocal(handle)->Set(NanSymbol("callback"), fn);
                                       ^
../../nan/nan.h: In member function ‘v8::Local<v8::Function> NanCallback::GetFunction()’:
../../nan/nan.h:181:26: error: ‘NewSymbol’ is not a member of ‘v8::String’
 #define NanSymbol(value) v8::String::NewSymbol(value)
                          ^
../../nan/nan.h:750:46: note: in expansion of macro ‘NanSymbol’
     return NanPersistentToLocal(handle)->Get(NanSymbol("callback"))
                                              ^
../../nan/nan.h:751:25: error: expected primary-expression before ‘>’ token
         .As<v8::Function>();
                         ^
../../nan/nan.h:751:27: error: expected primary-expression before ‘)’ token
         .As<v8::Function>();
                           ^
../../nan/nan.h: In member function ‘void NanCallback::Call(int, v8::Handle<v8::Value>*)’:
../../nan/nan.h:181:26: error: ‘NewSymbol’ is not a member of ‘v8::String’
 #define NanSymbol(value) v8::String::NewSymbol(value)
                          ^
../../nan/nan.h:759:13: note: in expansion of macro ‘NanSymbol’
         Get(NanSymbol("callback")).As<v8::Function>();
             ^
../../nan/nan.h:759:51: error: expected primary-expression before ‘>’ token
         Get(NanSymbol("callback")).As<v8::Function>();
                                                   ^
../../nan/nan.h:759:53: error: expected primary-expression before ‘)’ token
         Get(NanSymbol("callback")).As<v8::Function>();
                                                     ^
../../nan/nan.h:761:9: error: ‘GetCurrent’ is not a member of ‘v8::Context’
         v8::Context::GetCurrent()->Global()
         ^
../../nan/nan.h: In member function ‘void NanAsyncWorker::SavePersistent(const char*, v8::Local<v8::Object>&)’:
../../nan/nan.h:181:26: error: ‘NewSymbol’ is not a member of ‘v8::String’
 #define NanSymbol(value) v8::String::NewSymbol(value)
                          ^
../../nan/nan.h:808:17: note: in expansion of macro ‘NanSymbol’
     handle->Set(NanSymbol(key), obj);
                 ^
../../nan/nan.h: In member function ‘v8::Local<v8::Object> NanAsyncWorker::GetFromPersistent(const char*)’:
../../nan/nan.h:181:26: error: ‘NewSymbol’ is not a member of ‘v8::String’
 #define NanSymbol(value) v8::String::NewSymbol(value)
                          ^
../../nan/nan.h:815:24: note: in expansion of macro ‘NanSymbol’
     return handle->Get(NanSymbol(key)).As<v8::Object>();
                        ^
../../nan/nan.h:815:53: error: expected primary-expression before ‘>’ token
     return handle->Get(NanSymbol(key)).As<v8::Object>();
                                                     ^
../../nan/nan.h:815:55: error: expected primary-expression before ‘)’ token
     return handle->Get(NanSymbol(key)).As<v8::Object>();
                                                       ^
../../nan/nan.h: In member function ‘virtual void NanAsyncWorker::HandleErrorCallback()’:
../../nan/nan.h:837:30: error: ‘New’ is not a member of ‘v8::String’
         v8::Exception::Error(v8::String::New(errmsg))
                              ^
../../nan/nan.h: In function ‘bool _NanGetExternalParts(v8::Handle<v8::Value>, const char**, size_t*)’:
../../nan/nan.h:1005:12: error: ‘class v8::String’ has no member named ‘IsExternalAscii’
   if (str->IsExternalAscii()) {
            ^
../../nan/nan.h:1006:11: error: ‘ExternalAsciiStringResource’ in ‘class v8::String’ does not name a type
     const v8::String::ExternalAsciiStringResource* ext;
           ^
../../nan/nan.h:1007:5: error: ‘ext’ was not declared in this scope
     ext = str->GetExternalAsciiStringResource();
     ^
../../nan/nan.h:1007:16: error: ‘class v8::String’ has no member named ‘GetExternalAsciiStringResource’
     ext = str->GetExternalAsciiStringResource();
                ^
../../nan/nan.h: In instantiation of ‘void NanDisposePersistent(v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&) [with T = v8::Object]’:
../../nan/nan.h:786:44:   required from here
../../nan/nan.h:394:5: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘Clear’
     handle.Clear();
     ^
make: *** [Release/obj.target/mysql_bindings/src/mysql_bindings.o] Error 1
make: Leaving directory `/home/ec2-user/daemons/deduplication_api/v11/dupe-res/node_modules/mysql-libmysqlclient/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.4.41-36.55.amzn1.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/ec2-user/daemons/deduplication_api/v11/dupe-res/node_modules/mysql-libmysqlclient
gyp ERR! node -v v6.9.3
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 
npm ERR! Linux 4.4.41-36.55.amzn1.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "mysql-libmysqlclient"
npm ERR! node v6.9.3
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1

npm ERR! mysql-libmysqlclient@1.6.0 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the mysql-libmysqlclient@1.6.0 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the mysql-libmysqlclient 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 information on how to open an issue for this project with:
npm ERR!     npm bugs mysql-libmysqlclient
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls mysql-libmysqlclient
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/ec2-user/.npm/_logs/2017-07-27T22_29_14_226Z-debug.log

To be sure I had some kind of compiler, I also did:

 yum install gcc

But it said it was already installed.

bnoordhuis commented 6 years ago

@lkrubner That module appears to be unmaintained, it was last updated in 2014. The compile errors indicate it was written for an old version of the Node.js/V8 API.

edit: from https://www.npmjs.com/package/mysql-libmysqlclient

This module has been tested with Node.js versions 0.8.26, v0.10.25 and 0.11.10

lkrubner commented 6 years ago

@bnoordhuis -- thank you for that. I'll find some other road forward.

fc commented 6 years ago

Upgrading nvm worked for me although I did a number of other things before this that may have helped (removing node-gyp folder for example)... it immediately worked after the nvm upgrade within the same shell terminal.

kodepareek commented 6 years ago

Seems Ubuntu 16.04 does NOT come with python 2.7 preinstalled. Server was running fine until I tried to run npm install yesterday and have been seeing errors and have been unable to build since.

below seems to be the problem,

ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:449:14)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:353:11
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:69:16)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:81:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:90:16
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:44:5
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/access.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:123:15)
gyp ERR! System Linux 4.4.0-1013-aws
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/app/client/releases/20170927125424/node_modules/inotify
gyp ERR! node -v v6.11.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 
npm ERR! Linux 4.4.0-1013-aws
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--production"
npm ERR! node v6.11.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! inotify@1.4.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the inotify@1.4.2 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the inotify 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 information on how to open an issue for this project with:
npm ERR!     npm bugs inotify
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls inotify
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/app/client/releases/20170927125424/npm-debug.log
fc commented 6 years ago

@kodepareek have you tried installing python...?

gibfahn commented 6 years ago

@kodepareek sudo apt-get install python

kodepareek commented 6 years ago

@fc have installed python now and exported python pointing to the executable. npm install worked fine. Just wanted to let it be known as an issue, I think node-gyp is depending on python 2.7 being part of the system but ubuntu 16.10++ does not have that installed by default.

gibfahn commented 6 years ago

@kodepareek that's correct, Python 2 is listed as a dependency in the README: https://github.com/nodejs/node-gyp/#on-unix

There are plans to try to remove this requirement, but as upstream GYP is basically deprecated at this point, it's difficult to do.

kodepareek commented 6 years ago

@gibfahn Just read up about GYP and understood what you mean. Well its a headscratcher. Especially because I wasn't using node-gyp but npm and could not build or install dependencies. Hopefully your suggestions above will help out someone sometime.

strarsis commented 6 years ago

In WSL when installing dependencies with yarn that also depend/build sharp:

Error: Can't find Python executable "C:Python27python.exe", you can set the PYTHON env variable.
gibfahn commented 6 years ago

I wasn't using node-gyp but npm and could not build or install dependencies. Hopefully your suggestions above will help out someone sometime.

@kodepareek When you npm install a native module (one with C++ as well as JavaScript code), GYP is used to generate the platform-specific makefile for the module, which is then compiled. So npm install of a native module will compile that module (unless the developer has included prebuilt binaries).

gibfahn commented 6 years ago

In WSL when installing dependencies with yarn that also depend/build sharp:

@strarsis is that a question? You need to have Python 2.7 to npm install a native module, install it with sudo apt install python on Ubuntu.