2016-02-27 115 views
0

我嘗試使用'npm install zerorpc'在節點上安裝zerorpc軟件包,並且出現以下錯誤。該錯誤是因爲node-gyp無法重建。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 

然後我試圖通過https://askubuntu.com/questions/426750/how-can-i-update-my-nodejs-to-the-latest-version更新使用

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 
給出

的版本,但我得到 '慶典:在/ usr/bin中/節點:沒有這樣的文件或目錄' 錯誤

+0

。 'n'如何工作是它自動將二進制代碼交換出來。這樣,二進制路徑從不改變。 '哪個節點'會告訴你二進制文件在哪裏。很可能是'/ usr/local/bin',而不是'usr/bin'。仔細檢查你的$ PATH變量,並確保/ usr/local/bin靠近前端。可能的問題是,你的$ PATH變量會在'n'換出的路徑之前的某個路徑上選擇你的舊節點安裝。 – cdbajorin

+0

我使用'sudo n 4.3.0'將其升級到4.3.0版本,然後使用'sudo npm install zerorpc'並且它工作正常! – dsl1990

回答

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中/節點:沒有這樣的文件或目錄」的錯誤,我用包`N`意味着你應該永遠不需要符號鏈接做

sudo apt-get install node-legacy