Ubuntu npm : 依赖: node-gyp (>= 0.10.9) 但是它将不会被安装 解决:安装最新版的 Node.js 和 npm

本文详细介绍如何在Ubuntu服务器上卸载旧版本的Node.js和npm,并安装指定版本的Node.js,包括创建软链接和设置淘宝镜像加速。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:来源:

_奔跑的蜗牛

https://blog.youkuaiyun.com/mrwangweijin/article/details/78106955

在服务器上布一个项目,但发现Ubuntu服务器上面的源中的node 版本太低了,自己弄了好久,踩了许多坑,现在在分享给大家

node -v
 4.2.6

1. 卸载已安装的Node和npm !!!

这一点很重要,要不你装好了 node -v 还是原来的版本

sudo apt remove npm  //卸载npm
sudo apt remove node //卸载node

cd /usr/local/bin   //进入该目录中,若有node或者npm文件,将他删除删除

2. 下载安装node.js

node.js官网下载最新版或者最稳定版的node.js Linux安装包

这里写图片描述

下载完成后通过XFtp 或者其他类似软件传到服务器上,然后解压

tar -xJf node-v8.5.0-linux-x64.tar.xz  -C /opt   //解压到opt目录下

 建立链接到 /usr/local/bin/ 目录

sudo ln -s /opt/node-v8.5.0-linux-x64/bin/node /usr/local/bin/node    

然后跟npm建立执行链接

sudo ln -s /opt/node-v8.5.0-linux-x64/bin/npm /usr/local/bin/npm

此时,我们的环境搭建已经完毕

npm -v
6.4.1
node -v
v11.0.0
 

最后再补充一下设置淘宝镜像

sudo npm config set registry https://registry.npm.taobao.org   //设置淘宝镜像
source ~/.bashrc       //使修改立即生效

 

安装 报错npm WARN deprecated npmlog@4.1.2: This package is no longer supported. npm WARN deprecated are-we-there-yet@1.1.7: This package is no longer supported. npm WARN deprecated gauge@2.7.4: This package is no longer supported. npm ERR! code 1 npm ERR! path /Users/yangjia/workspace/company/dkYun/SDK2.0/node_modules/microtime npm ERR! command failed npm ERR! command sh -c prebuild-install || node-gyp rebuild npm ERR! CXX(target) Release/obj.target/microtime/src/microtime.o npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@8.4.1 npm ERR! gyp info using node@16.14.0 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.12.1 found at "/Library/Frameworks/Python.framework/Versions/3.12/bin/python3" npm ERR! gyp info spawn /Library/Frameworks/Python.framework/Versions/3.12/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args &#39;/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py&#39;, npm ERR! gyp info spawn args &#39;binding.gyp&#39;, npm ERR! gyp info spawn args &#39;-f&#39;, npm ERR! gyp info spawn args &#39;make&#39;, npm ERR! gyp info spawn args &#39;-I&#39;, npm ERR! gyp info spawn args &#39;/Users/yangjia/workspace/company/dkYun/SDK2.0/node_modules/microtime/build/config.gypi&#39;, npm ERR! gyp info spawn args &#39;-I&#39;, npm ERR! gyp info spawn args &#39;/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi&#39;, npm ERR! gyp info spawn args &#39;-I&#39;, npm ERR! gyp info spawn args &#39;/Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/common.gypi&#39;, npm ERR! gyp info spawn args &#39;-Dlibrary=shared_library&#39;, npm ERR! gyp info spawn args &#39;-Dvisibility=default&#39;, npm ERR! gyp info spawn args &#39;-Dnode_root_dir=/Users/yangjia/Library/Caches/node-gyp/16.14.0&#39;, npm ERR! gyp info spawn args &#39;-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp&#39;, npm ERR! gyp info spawn args &#39;-Dnode_lib_file=/Users/yangjia/Library/Caches/node-gyp/16.14.0/<(target_arch)/node.lib&#39;, npm ERR! gyp info spawn args &#39;-Dmodule_root_dir=/Users/yangjia/workspace/company/dkYun/SDK2.0/node_modules/microtime&#39;, npm ERR! gyp info spawn args &#39;-Dnode_engine=v8&#39;, npm ERR! gyp info spawn args &#39;--depth=.&#39;, npm ERR! gyp info spawn args &#39;--no-parallel&#39;, npm ERR! gyp info spawn args &#39;--generator-output&#39;, npm ERR! gyp info spawn args &#39;build&#39;, npm ERR! gyp info spawn args &#39;-Goutput_dir=.&#39; npm ERR! gyp info spawn args ] npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ &#39;BUILDTYPE=Release&#39;, &#39;-C&#39;, &#39;build&#39; ] npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:222: npm ERR! In file included from ../../nan/nan_converters.h:67: npm ERR! ../../nan/nan_converters_43_inl.h:22:1: error: no viable conversion from &#39;Local<v8::Context>&#39; to &#39;v8::Isolate *&#39; npm ERR! X(Boolean) npm ERR! ^~~~~~~~~~ npm ERR! ../../nan/nan_converters_43_inl.h:18:23: note: expanded from macro &#39;X&#39; npm ERR! val->To ## TYPE(isolate->GetCurrentContext()) \ npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:3086:37: note: passing argument to parameter &#39;isolate&#39; here npm ERR! Local<Boolean> ToBoolean(Isolate* isolate) const; npm ERR! ^ npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:222: npm ERR! In file included from ../../nan/nan_converters.h:67: npm ERR! ../../nan/nan_converters_43_inl.h:22:1: error: no member named &#39;FromMaybe&#39; in &#39;v8::Local<v8::Boolean>&#39; npm ERR! X(Boolean) npm ERR! ^~~~~~~~~~ npm ERR! ../../nan/nan_converters_43_inl.h:19:12: note: expanded from macro &#39;X&#39; npm ERR! .FromMaybe(v8::Local<v8::TYPE>())); \ npm ERR! ^ npm ERR! ../../nan/nan_converters_43_inl.h:40:1: error: no viable conversion from &#39;Local<v8::Context>&#39; to &#39;v8::Isolate *&#39; npm ERR! X(bool, Boolean) npm ERR! ^~~~~~~~~~~~~~~~ npm ERR! ../../nan/nan_converters_43_inl.h:37:29: note: expanded from macro &#39;X&#39; npm ERR! return val->NAME ## Value(isolate->GetCurrentContext()); \ npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:3096:30: note: passing argument to parameter &#39;isolate&#39; here npm ERR! bool BooleanValue(Isolate* isolate) const; npm ERR! ^ npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:222: npm ERR! In file included from ../../nan/nan_converters.h:67: npm ERR! ../../nan/nan_converters_43_inl.h:40:1: error: no viable conversion from returned value of type &#39;bool&#39; to function return type &#39;imp::ToFactory<bool>::return_t&#39; (aka &#39;Maybe<bool>&#39;) npm ERR! X(bool, Boolean) npm ERR! ^~~~~~~~~~~~~~~~ npm ERR! ../../nan/nan_converters_43_inl.h:37:10: note: expanded from macro &#39;X&#39; npm ERR! return val->NAME ## Value(isolate->GetCurrentContext()); \ npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:10437:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from &#39;bool&#39; to &#39;const v8::Maybe<bool> &&#39; for 1st argument npm ERR! class Maybe { npm ERR! ^ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:10437:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from &#39;bool&#39; to &#39;v8::Maybe<bool> &&&#39; for 1st argument npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:10492:12: note: explicit constructor is not a candidate npm ERR! explicit Maybe(const T& t) : has_value_(true), value_(t) {} npm ERR! ^ npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:223: npm ERR! In file included from ../../nan/nan_new.h:189: npm ERR! ../../nan/nan_implementation_12_inl.h:356:37: error: too few arguments to function call, expected 2, have 1 npm ERR! return v8::StringObject::New(value).As<v8::StringObject>(); npm ERR! ~~~~~~~~~~~~~~~~~~~~~ ^ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:6196:23: note: &#39;New&#39; declared here npm ERR! static Local<Value> New(Isolate* isolate, Local<String> value); npm ERR! ^ npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:2722: npm ERR! ../../nan/nan_object_wrap.h:24:25: error: no member named &#39;IsNearDeath&#39; in &#39;Nan::Persistent<v8::Object>&#39; npm ERR! assert(persistent().IsNearDeath()); npm ERR! ~~~~~~~~~~~~ ^ npm ERR! /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/assert.h:99:25: note: expanded from macro &#39;assert&#39; npm ERR! (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0) npm ERR! ^ npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:2722: npm ERR! ../../nan/nan_object_wrap.h:127:26: error: no member named &#39;IsNearDeath&#39; in &#39;Nan::Persistent<v8::Object>&#39; npm ERR! assert(wrap->handle_.IsNearDeath()); npm ERR! ~~~~~~~~~~~~~ ^ npm ERR! /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/assert.h:99:25: note: expanded from macro &#39;assert&#39; npm ERR! (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0) npm ERR! ^ npm ERR! In file included from ../src/microtime.cc:9: npm ERR! In file included from ../../nan/nan.h:2818: npm ERR! ../../nan/nan_typedarray_contents.h:34:43: warning: &#39;GetContents&#39; is deprecated: Use GetBackingStore. See http://crbug.com/v8/9908. [-Wdeprecated-declarations] npm ERR! data = static_cast<char*>(buffer->GetContents().Data()) + byte_offset; npm ERR! ^ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:5614:3: note: &#39;GetContents&#39; has been explicitly marked deprecated here npm ERR! V8_DEPRECATED("Use GetBackingStore. See http://crbug.com/v8/9908.") npm ERR! ^ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8config.h:454:35: note: expanded from macro &#39;V8_DEPRECATED&#39; npm ERR! # define V8_DEPRECATED(message) [[deprecated(message)]] npm ERR! ^ npm ERR! ../src/microtime.cc:75:10: error: no matching member function for call to &#39;Set&#39; npm ERR! array->Set(Nan::New<v8::Integer>(0), Nan::New<v8::Number>((double)t.tv_sec)); npm ERR! ~~~~~~~^~~ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:3961:37: note: candidate function not viable: requires 3 arguments, but 2 were provided npm ERR! V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, npm ERR! ^ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:3964:37: note: candidate function not viable: requires 3 arguments, but 2 were provided npm ERR! V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, npm ERR! ^ npm ERR! ../src/microtime.cc:76:10: error: no matching member function for call to &#39;Set&#39; npm ERR! array->Set(Nan::New<v8::Integer>(1), Nan::New<v8::Number>((double)t.tv_usec)); npm ERR! ~~~~~~~^~~ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:3961:37: note: candidate function not viable: requires 3 arguments, but 2 were provided npm ERR! V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, npm ERR! ^ npm ERR! /Users/yangjia/Library/Caches/node-gyp/16.14.0/include/node/v8.h:3964:37: note: candidate function not viable: requires 3 arguments, but 2 were provided npm ERR! V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, npm ERR! ^ npm ERR! 1 warning and 9 errors generated. npm ERR! make: *** [Release/obj.target/microtime/src/microtime.o] Error 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:520:28) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12) npm ERR! gyp ERR! System Darwin 22.6.0 npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" npm ERR! gyp ERR! cwd /Users/yangjia/workspace/company/dkYun/SDK2.0/node_modules/microtime npm ERR! gyp ERR! node -v v16.14.0 npm ERR! gyp ERR! node-gyp -v v8.4.1 npm ERR! gyp ERR! not ok npm ERR! A complete log of this run can be found in: npm ERR! /Users/yangjia/.npm/_logs/2025-06-30T06_40_09_765Z-debug-0.log
07-01
cranyon@ubuntu:~$ sudo aptitude install npm 下列“新”软件包将被安装gyp{a} libjs-async{a} libjs-inherits{a} libjs-node-uuid{a} libjs-underscore{a} libssl1.0-dev{ab} libuv1-dev{a} node-abbrev{a} node-ansi{a} node-ansi-color-table{a} node-archy{a} node-async{a} node-balanced-match{a} node-block-stream{a} node-brace-expansion{a} node-builtin-modules{a} node-combined-stream{a} node-concat-map{a} node-cookie-jar{a} node-delayed-stream{a} node-forever-agent{a} node-form-data{a} node-fs.realpath{a} node-fstream{a} node-fstream-ignore{a} node-github-url-from-git{a} node-glob{a} node-graceful-fs{a} node-gyp{a} node-hosted-git-info{a} node-inflight{a} node-inherits{a} node-ini{a} node-is-builtin-module{a} node-isexe{a} node-json-stringify-safe{a} node-lockfile{a} node-lru-cache{a} node-mime{a} node-minimatch{a} node-mkdirp{a} node-mute-stream{a} node-node-uuid{a} node-nopt{a} node-normalize-package-data{a} node-npmlog{a} node-once{a} node-osenv{a} node-path-is-absolute{a} node-pseudomap{a} node-qs{a} node-read{a} node-read-package-json{a} node-request{a} node-retry{a} node-rimraf{a} node-semver{a} node-sha{a} node-slide{a} node-spdx-correct{a} node-spdx-expression-parse{a} node-spdx-license-ids{a} node-tar{a} node-tunnel-agent{a} node-underscore{a} node-validate-npm-package-license{a} node-which{a} node-wrappy{a} node-yallist{a} nodejs-dev{a} npm python-pkg-resources{a} 0 个软件包被升级,新安装 72 个, 0 个将被删除, 同时 14 个将不升级。 需要获取 4,307 kB 的存档。 解包后将要使用 24.2 MB。 下列软件包存在未满足的依赖关系: libcurl4-openssl-dev : 冲突: libssl1.0-dev but 1.0.2n-1ubuntu5.13 is to be installed libssl-dev : 冲突: libssl1.0-dev but 1.0.2n-1ubuntu5.13 is to be installed libssl1.0-dev : 冲突: libssl-dev but 1.1.1-1ubuntu2.1~18.04.23 is installed 下列动作将解决这些依赖关系: 保持 下列软件包于其当前版本: 1) libssl1.0-dev [未安装的] 2) node-gyp [未安装的] 3) nodejs-dev [未安装的] 4) npm [未安装的] 是否接受该解决方案?[Y/n/q/?] y 将不会安装,升级或者删除任何软件包。 0 个软件包被升级,新安装 0 个, 0 个将被删除, 同时 14 个将不升级。 如何解决
最新发布
07-23
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值