ошибка перестройки node-gyp при установке узловых модулей

Я попытался установить пакет zerorpc на узле, используя npm install zerorpc, и получаю следующую ошибку. Ошибка связана с тем, что node-gyp не может перестроиться.

npm http GET https://registry.npmjs.org/zerorpc
npm http 304 https://registry.npmjs.org/zerorpc
npm http GET https://registry.npmjs.org/underscore/1.3.3
npm http GET https://registry.npmjs.org/node-uuid/1.3.3
npm http GET https://registry.npmjs.org/msgpack/1.0.2
npm http GET https://registry.npmjs.org/zmq
npm http 304 https://registry.npmjs.org/node-uuid/1.3.3
npm http 304 https://registry.npmjs.org/msgpack/1.0.2
npm http 304 https://registry.npmjs.org/zmq
npm http 304 https://registry.npmjs.org/underscore/1.3.3
npm WARN engine [email protected]: wanted: {"node":">=0.12.7"} (current: {"node":"v0.10.25","npm":"1.3.10"})
npm http GET https://registry.npmjs.org/bindings
npm http GET https://registry.npmjs.org/nan
npm http GET https://registry.npmjs.org/nan
npm http 304 https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/nan
npm http 304 https://registry.npmjs.org/nan

> [email protected] install /home/deepu/node_modules/zerorpc/node_modules/zmq
> node-gyp rebuild


> [email protected] install /home/deepu/node_modules/zerorpc/node_modules/msgpack
> node-gyp rebuild

make: Entering directory `/home/deepu/node_modules/zerorpc/node_modules/zmq/build'
  CXX(target) Release/obj.target/zmq/binding.o
make: Entering directory `/home/deepu/node_modules/zerorpc/node_modules/msgpack/build'
  CC(target) Release/obj.target/libmsgpack/deps/msgpack/objectc.o
  CC(target) Release/obj.target/libmsgpack/deps/msgpack/unpack.o
  CC(target) Release/obj.target/libmsgpack/deps/msgpack/vrefbuffer.o
  CC(target) Release/obj.target/libmsgpack/deps/msgpack/zone.o
  CC(target) Release/obj.target/libmsgpack/deps/msgpack/version.o
  AR(target) Release/obj.target/deps/msgpack/msgpack.a
  COPY Release/msgpack.a
  CXX(target) Release/obj.target/msgpackBinding/src/msgpack.o
../src/msgpack.cc: In function ‘void v8_to_msgpack(v8::Handle<v8::Value>, msgpack_object*, msgpack_zone*, size_t)’:
../src/msgpack.cc:126:93: error: could not convert ‘v8obj’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’
         mo->via.str.size = static_cast<uint32_t>(Nan::DecodeBytes(v8obj, Nan::Encoding::UTF8));
                                                                                             ^
../src/msgpack.cc:129:94: error: could not convert ‘v8obj’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’
         Nan::DecodeWrite((char*)mo->via.str.ptr, mo->via.str.size, v8obj, Nan::Encoding::UTF8);
                                                                                              ^
../src/msgpack.cc:136:94: error: could not convert ‘result’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’
         mo->via.str.size = static_cast<uint32_t>(Nan::DecodeBytes(result, Nan::Encoding::UTF8));
                                                                                              ^
../src/msgpack.cc:139:95: error: could not convert ‘result’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’
         Nan::DecodeWrite((char*)mo->via.str.ptr, mo->via.str.size, result, Nan::Encoding::UTF8);
                                                                                               ^
make: *** [Release/obj.target/msgpackBinding/src/msgpack.o] Error 1
make: Leaving directory `/home/deepu/node_modules/zerorpc/node_modules/msgpack/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Linux 3.16.0-60-generic
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/deepu/node_modules/zerorpc/node_modules/msgpack
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.10.10
gyp ERR! not ok 
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! weird error 1
Assembler messages:
Fatal error: can't create Release/obj.target/zmq/binding.o: No such file or directory
make: *** [Release/obj.target/zmq/binding.o] Error 1
make: Leaving directory `/home/deepu/node_modules/zerorpc/node_modules/zmq/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Linux 3.16.0-60-generic
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/deepu/node_modules/zerorpc/node_modules/zmq
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.10.10
gyp ERR! not ok 
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! not ok code 0

Затем я попытался обновить версию с помощью

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

предоставлено https://askubuntu.com/questions/426750/how-can-i-update-my-nodejs-to-the-latest-version, но я получаю сообщение об ошибке «bash: / usr / bin / node: нет такого файла или каталога»


person dsl1990    schedule 27.02.2016    source источник
comment
использование пакета n означает, что вам никогда не понадобится символическая ссылка. Принцип работы n заключается в том, что он автоматически меняет двоичные файлы. Таким образом, двоичный путь никогда не меняется. which node сообщит вам, где находится этот двоичный файл. Скорее всего /usr/local/bin, а не usr/bin. Дважды проверьте переменную $ PATH и убедитесь, что / usr / local / bin находится ближе к началу. Что, вероятно, случается, так это то, что ваша переменная $ PATH берет установку вашего старого узла по некоторому пути перед тем, который n заменяет.   -  person chrisbajorin    schedule 27.02.2016
comment
Я обновил его до версии 4.3.0, используя sudo n 4.3.0, а затем использовал sudo npm install zerorpc, и это сработало!   -  person dsl1990    schedule 27.02.2016


Ответы (1)


Я обновил его до версии 4.3.0, используя

sudo npm cache clean -f
sudo npm install -g n
sudo n 4.3.0

а затем я использовал

sudo npm install zerorpc

и это сработало!

Что касается ошибки bash: '/ usr / bin / node: No such file or directory', я сделал

sudo apt-get install node-legacy
person dsl1990    schedule 27.02.2016