我正在尝试安装 的NodeJS </跨度> 进入我的Ubuntu 14.04以便使用GruntJs。
我已经阅读了Ubuntu不同的做法(问题?),所以这就是我为安装它而做的事情:
sudo apt-get | sudo bash -
sudo apt-get install -y 的NodeJS </跨度>
sudo apt-get update
再试一次,仍然得到错误,我试过:
sudo add-apt-repositoryhttps://launchpad.net/~chris-lea/+archive/node.js’
我认为你应该升级最新的节点版本
sudo npm cache clean -f sudo npm install -g n sudo n stable
问题不在于节点版本。相反,它是默认情况下在Ubuntu中安装NodeJS的方式。在Ubuntu中运行Node应用程序时,您必须运行 nodejs somethign.js 代替 node something.js
nodejs somethign.js
node something.js
所以在终端中调用的应用程序名称是 nodejs 并不是 node 。这就是为什么需要一个符号链接来简单地转发收到的所有命令 node 至 nodejs 。
nodejs
node
ln -s /usr/bin/nodejs /usr/bin/node
对于我的案例链接 的 没有 强> 的 不 强> 的 工作 强> 如下
ln -s / usr / bin / nodejs / usr / bin / node
但是您可以以root身份打开/ usr / local / bin / lessc,并将第一行从节点更改为nodejs。
- #!/ usr / bin / env节点 +#!/ usr / bin / env nodejs
- #!/ usr / bin / env节点
+#!/ usr / bin / env nodejs
根据您安装节点的方式,大部分时间它可能不在/ usr / bin /中,在我自己的情况下,我使用nvm进行安装,因此我的节点位于./nvm/versions中。
使用此命令 which node 我找到了路径,但为了使工作更轻松,您可以运行此命令。
which node
nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node
上面的命令将获取节点的位置并为您创建链接。
有两种解决方案:
a)设置PATH变量以包含“/ usr / local / bin”
export PATH="$PATH:/usr/local/bin"
b)创建一个已经在PATH中的“/ usr / bin”的符号链接
我希望它有所帮助。
对我来说,接受的答案还没有奏效。我按照这里的建议开始:
执行此操作后,我收到以下错误:
/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require('update-notifier')({pkg}) ^^^ SyntaxError:块范围的声明(let,const,function,class) 在严格模式之外尚未支持 在exports.runInThisContext(vm.js:53:16) 在Module._compile(module.js:374:25) at Object.Module._extensions..js(module.js:417:10) 在Module.load(module.js:344:32) 在Function.Module._load(module.js:301:12) 在Function.Module.runMain(module.js:442:10) 在启动时(node.js:136:18) 在node.js:966:3
/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require('update-notifier')({pkg}) ^^^
SyntaxError:块范围的声明(let,const,function,class) 在严格模式之外尚未支持 在exports.runInThisContext(vm.js:53:16) 在Module._compile(module.js:374:25) at Object.Module._extensions..js(module.js:417:10) 在Module.load(module.js:344:32) 在Function.Module._load(module.js:301:12) 在Function.Module.runMain(module.js:442:10) 在启动时(node.js:136:18) 在node.js:966:3
解决方案是从中下载最新版本的节点 https://nodejs.org/en/download/ 。
然后我做了:
sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1
现在更新终于成功了: npm -v 从3.2.1变为6.4.1
npm -v
我发现这通常是一个错误的错误,如果你从一个包管理器安装你bin可能被称为nodejs所以你只需要像这样符号链接
而 ln -s 是一个明显最简单的解决方案,一个解释:
ln -s
由于与另一个包冲突,可执行文件来自 Ubuntu存储库称为nodejs而不是node。保持这个 介意你正在运行软件。
安装时会出现这个建议 sudo apt-get install nodejs 。
sudo apt-get install nodejs
所以其他一些已知的工具(我不知道它的作用。虽然ubuntu存储库已知,但默认情况下在16.04中没有安装)占用该命名空间。
本来不错的,如果Ubuntu提出了如何解决这个“干净利落”的建议,如果不是通过手工做什么,否则包装会做。 (碰撞仍然是碰撞......如果+发生碰撞时)
只需重命名命令或文件名即可 ln -s /usr/bin/nodejs /usr/bin/node 通过这个命令
当我使用gulp时,我遇到了这个错误。
~$ gulp
/ usr / bin / env:“ode”:没有这样的文件或目录
通过执行以下命令删除了这一点,您必须记住/ usr / bin目录具有所有权限。
~$ ln -s /usr/bin/nodejs /usr/bin/node
这对我有用..
如果你能够使用nodejs命令访问ubuntu终端上的节点,那么这个问题可以简单地解决 - 使用创建nodejs和node的符号链接
这可以解决问题
就我而言, 安装nodejs-legacy 解决了这个问题。
sudo apt-get install nodejs-legacy
sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
找到了答案。为了防止有人,我会在这里发布:
执行符号链接可以解决问题: ln -s /usr/bin/nodejs /usr/bin/node (谢谢你和+1票 bodokaiser )。
注意:我认为这篇文章并不完全重复,因为该帖子有点像浏览器问题。
做就是了
$ sudo apt-get install nodejs-legacy
它将开始工作。
如果您已经安装了nodejs(请查看 which nodejs )并且不想安装另一个软件包,你可以作为root:
which nodejs
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99