Node.js与Ubuntu 12.04上的Node有何区别?

390

我按照这里的说明在Ubuntu上安装了nodejs。

当我在终端中输入node --version时,看到以下信息:
-bash: /usr/sbin/node: 没有那个文件或目录

但是,我可以在/usr/sbin/目录下看到node。

输入npm --version显示1.3.5
输入nodejs --version显示v0.10.15

此外,我也可以在/usr/bin/目录看到node。

那么,我该如何让node正常工作呢?

此外,如果我使用zsh而不是bash,则node命令可以正常工作。


1
如果“你在/usr/bin/中看到了node”,那么ls -l /usr/bin/node的输出是什么? - randunel
1
@randunel 我得到了这个输出 lrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node - Jatin
抱歉,我对这个输出感兴趣:declare -x PATH=".....,而不是 NODE_PATH,只是 PATH - randunel
路径看起来没问题,你应该可以从任何地方看到 node 可执行文件。当你输入 whereis node,输出是什么? - randunel
1
请在此处查看解决方案和说明:https://dev59.com/7WEi5IYBdhLWcg3wjs1j#21171188 - throbi
显示剩余7条评论
22个回答

7
晚回复了,但是最新的信息如下:
如果您使用node github安装自述文件中推荐的方法安装 node.js,则建议按照nodesource 博客文章上的说明操作,而不是从过时的 apt-get 库安装。使用该方法,在不创建新符号链接的情况下,node.js 应该可以通过 node 命令和 nodejs 命令运行。
# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

请注意,此处针对的是v0.12版本,可能很快就会过时。
另外,如果您在公司代理后面(像我一样),您需要在sudo命令中添加-E选项,以保留代理所需的环境变量: curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -

4
如果您正在运行Ubuntu实例的AWS EC2实例(已在Ubuntu 16.x上测试),则以下步骤可能适用于您:
sudo apt-get update sudo apt-get --purge remove node -y sudo apt-get --purge remove nodejs -y sudo apt-get --purge remove legacy-node -y sudo rm /usr/bin/node curl -sL https://deb.nodesource.com/setup_6.x | sudo bash - sudo apt-get install nodejs -y node -v
如果一切正确,最后一个命令将输出类似于:v6.x.x
如果不是这样,请运行以下命令:
sudo ln -s /usr/bin/nodejs /usr/bin/node 希望这可以帮助您。它神奇地帮助了我(嘿嘿)。

3
我遇到了同样的问题,使用符号链接解决了: sudo ln -s /usr/bin/nodejs /usr/bin/node 之后执行 sudo npm install -g phantomjs-prebuilt 顺利完成。

2
最佳安装Node.js的方式是使用NVM(Node Version Manager)。
删除之前的版本: $ sudo apt-get purge node $ sudo apt autoremove 还要通过在包含此文件夹的目录中运行$ sudo rm -rf node_modules来删除所有node_modules。
Node和Nodejs在技术上是相同的东西。只是命名发生了变化。
首先安装或更新nvm。
以root身份运行: $ sudo su
然后: $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash
或者: $ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash
检查nvm是否在路径中: $ source ~/.profile $ nvm ls-remote 如果您遇到有关列表的错误,则安装git。 $ sudo apt-get install git
重新运行: $ nvm ls-remote 或 $ sudo nvm ls-remote $ nvm install version-you-require 检查版本:
# node --version $nvm use version-you-require 信息来源:https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps

1

1

https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

➜  ~ which node
/usr/local/bin/node
➜  ~ node --version
v10.11.0
➜  ~ which npm
/usr/local/bin/npm
➜  ~ npm --version
6.4.1

1
我已经创建了一个符号链接,但它仍然不起作用。
我忘记重新启动终端(我的putty连接)。在没有符号链接的情况下,我让它工作了 :)

1

适合绝对初学者

虽然你已经得到了答案,但我想指出,node命令(不带任何参数)将以REPL 读取-求值-输出循环模式启动节点以执行原始JavaScript代码。

另一种使用node命令的方法是提供一个js文件作为参数。这是我们主要使用它的方式。


1

只需使用NVM(Node版本管理器)- https://github.com/creationix/nvm

它已成为管理Node.js的标准。

当您需要新版本时:

nvm install NEW_VER
nvm use XXX

如果出现问题,您始终可以使用“返回”功能。
nvm use OLD_VER

0

可以选择删除现有的node和nodejs,但必须另外安装最新的7.x nodejs。

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接