title: Error installing MEAN on mac os x
body: <p>When installing MEAN I get the following error:</p>
  
  <pre><code>CXX(target) Release/obj.target/bson/ext/bson.o
  In file included from ../ext/bson.cc:36:
  In file included from ../ext/bson.h:17:
  ../node_modules/nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'
  NAN_INLINE v8::Local&lt;T&gt; _NanEnsureLocal(v8::Local&lt;T&gt; val) {
  ^
  ../node_modules/nan/nan.h:256:25: note: previous definition is here
  NAN_INLINE v8::Local&lt;T&gt; _NanEnsureLocal(v8::Handle&lt;T&gt; val) {
  ^
  ../node_modules/nan/nan.h:661:13: error: no member named 'smalloc' in namespace
  'node'
  , node::smalloc::FreeCallback callback
  ~~~~~~^
  ../node_modules/nan/nan.h:672:12: error: no matching function for call to 'New'
  return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
  ^~~~~~~~~~~~~~~~~
  /Users/konstantin/.node-gyp/4.0.0/include/node/node_buffer.h:31:40: note: 
  candidate function not viable: no known conversion from 'uint32_t'
  (aka 'unsigned int') to 'enum encoding' for 3rd argument
  NODE_EXTERN v8::MaybeLocal&lt;v8::Object&gt; New(v8::Isolate* isolate,
  ^
  /Users/konstantin/.node-gyp/4.0.0/include/node/node_buffer.h:43:40: note: 
  candidate function not viable: 2nd argument ('const char *') would lose
  const qualifier
  NODE_EXTERN v8::MaybeLocal&lt;v8::Object&gt; New(v8::Isolate* isolate,
  ^
  /Users/konstantin/.node-gyp/4.0.0/include/node/node_buffer.h:28:40: note: 
  candidate function not viable: requires 2 arguments, but 3 were provided
  NODE_EXTERN v8::MaybeLocal&lt;v8::Object&gt; New(v8::Isolate* isolate, size_t length);
  ^
  /Users/konstantin/.node-gyp/4.0.0/include/node/node_buffer.h:36:40: note: 
  candidate function not viable: requires 5 arguments, but 3 were provided
  NODE_EXTERN v8::MaybeLocal&lt;v8::Object&gt; New(v8::Isolate* isolate,
  ^
  In file included from ../ext/bson.cc:36:
  In file included from ../ext/bson.h:17:
  ../node_modules/nan/nan.h:676:12: error: no viable conversion from
  'v8::MaybeLocal&lt;v8::Object&gt;' to 'v8::Local&lt;v8::Object&gt;'
  return node::Buffer::New(v8::Isolate::GetCurrent(), size);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:210:7: note: 
  candidate constructor (the implicit copy constructor) not viable: no known
  conversion from 'v8::MaybeLocal&lt;v8::Object&gt;' to 'const
  v8::Local&lt;v8::Object&gt; &amp;' for 1st argument
  class Local {
  ^
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:210:7: note: 
  candidate constructor (the implicit move constructor) not viable: no known
  conversion from 'v8::MaybeLocal&lt;v8::Object&gt;' to 'v8::Local&lt;v8::Object&gt; &amp;&amp;'
  for 1st argument
  class Local {
  ^
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:214:13: note: 
  candidate template ignored: could not match 'Local' against 'MaybeLocal'
  V8_INLINE Local(Local&lt;S&gt; that)
  ^
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:326:13: note: 
  candidate template ignored: could not match 'S *' against
  'v8::MaybeLocal&lt;v8::Object&gt;'
  V8_INLINE Local(S* that)
  ^
  In file included from ../ext/bson.cc:36:
  In file included from ../ext/bson.h:17:
  ../node_modules/nan/nan.h:683:26: error: no member named 'Use' in namespace
  'node::Buffer'
  return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
  ~~~~~~~~~~~~~~^
  In file included from ../ext/bson.cc:14:
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:221:5: error: 
  assigning to 'v8::Primitive *volatile' from incompatible type
  'v8::Value *'
  TYPE_CHECK(T, S);
  ^~~~~~~~~~~~~~~~
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:180:37: note: 
  expanded from macro 'TYPE_CHECK'
  *(static_cast&lt;T* volatile*&gt;(0)) = static_cast&lt;S*&gt;(0);      \
  ^ ~~~~~~~~~~~~~~~~~~
  ../node_modules/nan/nan.h:414:12: note: in instantiation of function template
  specialization 'v8::Local&lt;v8::Primitive&gt;::Local&lt;v8::Value&gt;' requested here
  return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
  ^
  ../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
  # define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
  ^
  In file included from ../ext/bson.cc:14:
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:221:5: error: 
  assigning to 'v8::Boolean *volatile' from incompatible type 'v8::Value *'
  TYPE_CHECK(T, S);
  ^~~~~~~~~~~~~~~~
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:180:37: note: 
  expanded from macro 'TYPE_CHECK'
  *(static_cast&lt;T* volatile*&gt;(0)) = static_cast&lt;S*&gt;(0);      \
  ^ ~~~~~~~~~~~~~~~~~~
  ../node_modules/nan/nan.h:424:12: note: in instantiation of function template
  specialization 'v8::Local&lt;v8::Boolean&gt;::Local&lt;v8::Value&gt;' requested here
  return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
  ^
  ../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
  # define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
  ^
  In file included from ../ext/bson.cc:14:
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:221:5: error: 
  assigning to 'v8::Function *volatile' from incompatible type 'v8::Value *'
  TYPE_CHECK(T, S);
  ^~~~~~~~~~~~~~~~
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:180:37: note: 
  expanded from macro 'TYPE_CHECK'
  *(static_cast&lt;T* volatile*&gt;(0)) = static_cast&lt;S*&gt;(0);      \
  ^ ~~~~~~~~~~~~~~~~~~
  ../node_modules/nan/nan.h:1514:12: note: in instantiation of function template
  specialization 'v8::Local&lt;v8::Function&gt;::Local&lt;v8::Value&gt;' requested here
  return NanEscapeScope(NanNew(handle)-&gt;Get(kCallbackIndex)
  ^
  ../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
  # define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
  ^
  In file included from ../ext/bson.cc:14:
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:221:5: error: 
  assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *'
  TYPE_CHECK(T, S);
  ^~~~~~~~~~~~~~~~
  /Users/konstantin/.node-gyp/4.0.0/include/node/v8.h:180:37: note: 
  expanded from macro 'TYPE_CHECK'
  *(static_cast&lt;T* volatile*&gt;(0)) = static_cast&lt;S*&gt;(0);      \
  ^ ~~~~~~~~~~~~~~~~~~
  ../node_modules/nan/nan.h:1632:12: note: in instantiation of function template
  specialization 'v8::Local&lt;v8::Object&gt;::Local&lt;v8::Value&gt;' requested here
  return NanEscapeScope(handle-&gt;Get(NanNew(key)).As&lt;v8::Object&gt;());
  ^
  ../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
  # define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
  ^
  9 errors generated.
  make: *** [Release/obj.target/bson/ext/bson.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/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/bin/node" "/usr/local/lib/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/build/Release/bson.node" "--module_name=bson" "--module_path=/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/build/Release"
  gyp ERR! cwd /usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext
  gyp ERR! node -v v4.0.0
  gyp ERR! node-gyp -v v3.0.3
  gyp ERR! not ok 
  node-pre-gyp ERR! build error 
  node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/build/Release/bson.node --module_name=bson --module_path=/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/build/Release' (1)
  node-pre-gyp ERR! stack     at ChildProcess.&lt;anonymous&gt; (/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
  node-pre-gyp ERR! stack     at emitTwo (events.js:87:13)
  node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
  node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:817:16)
  node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
  node-pre-gyp ERR! System Darwin 14.5.0
  node-pre-gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
  node-pre-gyp ERR! cwd /usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext
  node-pre-gyp ERR! node -v v4.0.0
  node-pre-gyp ERR! node-pre-gyp -v v0.6.4
  node-pre-gyp ERR! not ok 
  Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/build/Release/bson.node --module_name=bson --module_path=/usr/local/lib/node_modules/mean-cli/node_modules/mongoose/node_modules/bson/node_modules/bson-ext/build/Release' (1)
  npm ERR! registry error parsing json
  npm ERR! registry error parsing json
  </code></pre>
  
  <p>It seems like there is a problem with node-gyp or/and a problem with a new version of node/node-gyp:</p>
  
  <pre><code>gyp ERR! node -v v4.0.0
  gyp ERR! node-gyp -v v3.0.3
  gyp ERR! not ok 
  </code></pre>
  
  <p>I tried all the tips given at the MEAN website; but I have no clue what the error above is saying me.</p>
  
  <hr>
  
  <p>Versions:
   - node: 4.0.0
   - npm: 2.14.3
   - bower: 1.5.2
   - gulp: 3.9.0
   - mongoDB: 3.0.6</p>
  
  <p><a href="http://pastebin.com/gMWFz2Cn" rel="nofollow">full console log without sudo</a></p>
  
  <p><a href="http://pastebin.com/tQ8Y7k1t" rel="nofollow">full console log with sudo</a></p>