在Ubuntu 12.04上的nodejs vs node
我从这里给出的说明在Ubuntu上安装了nodejs
当我在terminal写入node --version
,我看到:
-bash: /usr/sbin/node: No such file or directory
不过,我可以看到/usr/sbin/
目录中的节点。
写npm --version
显示1.3.5
编写nodejs --version
显示v0.10.15
另外,我可以在/usr/bin/
目录中看到节点。
那么,如何让node
工作?
另外,如果我使用zsh而不是bash,那么node
命令就起作用。
您需要手动创build符号链接/usr/bin/node
。 bash兼容shell的快捷方式:
sudo ln -s `which nodejs` /usr/bin/node
或者,如果您使用非标准shell,只需对使用which nodejs
查找的path进行硬编码which nodejs
:
sudo ln -s /usr/bin/nodejs /usr/bin/node
稍后编辑
我在你发布的链接中find了这个解释
与节点包(业余分组无线节点程序)有一个命名冲突,并且节点js二进制已经从节点重命名为nodejs。 您需要将/ usr / bin / node符号链接到/ usr / bin / nodejs,否则您可以卸载业余无线分组无线节点程序以避免冲突。
稍后再编辑
我回答这个问题已经有一段时间了。 尽pipe我在这里发布的解决scheme已经为我多次工作,但用户在评论中报告了更多的解决scheme:
来自@ user229115
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
从AskUbuntu(用户leftium)
sudo apt-get --purge remove node sudo apt-get --purge remove nodejs sudo apt-get install nodejs
我认为是这样的:
sudo update-alternatives --install / usr / bin / node node / usr / bin / nodejs 10
使用Debian的替代品。
Ubuntu的版本显然不同。 以下在Ubuntu 13.10上为我工作:
sudo apt-get install nodejs-legacy
HTH
我在Ubuntu 14.04有同样的问题。
我已经安装了“nodejs”,它的工作,但只有当我使用命令“nodejs”。 如果我尝试使用“节点”没有任何反应。
我用下面的方法解决了这个问题:
-
安装nodejs-legacy
sudo apt-get install nodejs-legacy
之后,当我在命令行键入“node”时,我得到一个错误信息“/ usr / sbin / node:没有这样的文件或目录”
-
其次,我做了什么,它是“nodejs”上的一个符号链接:
sudo ln -s / usr / bin / nodejs / usr / sbin / node
这也发生在我身上。
node -v => 0.10.2 nodejs -v => 5.5.0
问题是我前一段时间从源安装了节点。 运行
which node
总是指向这个本地安装。 也,
echo NODE_PATH
指向本地安装。
使用源代码安装删除目录没有帮助。 它只是打破了节点命令。 最后,取消设置NODE_PATH环境variables并清除然后重新安装nodejs就行了。
unset NODE_PATH sudo apt-get --purge remove nodejs sudo apt-get install nodejs
在这之后,
node -v => 5.5.0
和npm安装开始工作的软件包取决于Node => 5.0。
我对这一切都是陌生的,但对我来说,一个简单的别名工作:
alias node='env NODE_NO_READLINE=1 rlwrap nodejs'
至less用于在bash中直接运行东西并执行.js文件。
迟到的答案,但最新的信息…
如果使用节点github安装自述文件中的推荐方法来安装node.js,则build议遵循nodesource博客文章中的说明 ,而不是从过时的apt-get回购安装,node.js应该使用node
命令以及nodejs
命令,而不必创build新的符号链接。
这篇文章的方法是:
# 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,在不久的将来可能会过时。
另外,如果你在公司代理的后面(像我一样),你需要将-E选项添加到sudo命令中,以保留代理所需的envvariables:
curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
如何使用nodejs站点的官方说明 :
对于v7:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs
对于v6:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y nodejs
对于v4:
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs
我已经testing了这些从Windows bash(通过Linux的子系统 – 14.04)和raspbian(基于ARM Debian的)。 在没有首先运行安装脚本的情况下运行sudo apt-get install -y nodejs
会导致您获得节点0.10。
如果您打算安装需要构build的本地npm模块,请运行:
sudo apt install -y build-essential
注意:这是所有体系结构中基于Debian的发行版的推荐path。
节点版本pipe理器(nvm)
如果您想安装多个nodejs版本并轻松地在它们之间切换,我会build议使用Node Version Manger 。 它也解决了命名问题( node
vs nodejs
)
这很简单:
安装一个nodejs版本:
$ nvm install 4.4
现在除了已安装的版本之外,还有nodejs 4.4,您可以使用node
命令来访问新安装的版本:
$ node -v // The new version added by nvm. v4.4.5 $ nodejs -v // The OS version is untouched and still available. v0.10.25
您可以安装更多的nodejs版本并轻松地在它们之间切换:
$ nvm install 6.2 $ nvm use 6.2 Now using node v6.2.1 (npm v3.9.3) $ node -v v6.2.1 $ nvm use 4.4 Now using node v4.4.5 (npm v2.15.5)
添加到@ randunel的正确答案(还不能评论):
我也不得不把/ usr / local / bin /节点连接到/ usr / bin / nodejs。
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
显然,这是覆盖/ usr / bin / node命令。
不知道如何设定,但希望它可以帮助别人,因为这是一个痛苦,弄清楚为什么上述不适合我。
这适用于我:
alias node=nodejs
遵循此链接中的说明。
sudo ln -s / usr / bin / nodejs / usr / bin / node之后sudo npm install -g phantomjs-prebuilt
进展顺利
如果您在运行Ubuntu实例(在Ubuntu 16.x上testing)的AWS EC2实例上,那么这些步骤可能适用于您:
sudo apt-get update sudo apt-get --purge删除节点-y sudo apt-get --purge删除nodejs -y sudo apt-get --purge删除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 节点-v
如果一切正确,最后的命令应该有如下输出:v6.xx
如果没有,则运行以下命令:
sudo ln -s / usr / bin / nodejs / usr / bin / node
希望这会有所帮助。 它神奇地帮助我(嘿嘿)。
安装nodejs的最佳方法是通过NVM(节点版本pipe理器)
删除以前的版本:
$ sudo apt-get清除节点
$ 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 | 庆典
要么
$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | 庆典
检查nvmpath
$ source〜/ .profile
$ nvm ls-remote
如果你的列表出现错误,那么安装git。
$ sudo apt-get install git
重新运行:
$ nvm ls-remote
要么
$ sudo nvm ls-remote
$ nvm install version-you-require
检查版本
#节点 - 版本
nvm使用版本你需要
信息咨询:
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps
我创build了一个符号链接,但它仍然无法正常工作。
我忘了重新启动我的terminal(我的腻子连接)。 之后我没有符号链接:)
将有助于绝对的初学者
虽然,你已经得到了答案,只是想指出node
命令(没有任何参数)将以REPL read-eval-print-loop模式启动节点来执行原始的javascript代码。
另一种使用node
命令的方法是通过提供一个js
文件作为参数。 这是我们主要使用它的方式。
删除现有节点和nodejs是可选的,但必须另外安装最新的7.x nodejs。
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs