ubuntu 12.04 上的 nodejs 与 node

IT技术 javascript node.js ubuntu serverside-javascript
2021-01-28 15:08:57

我根据此处给出的说明在 ubuntu 上安装了 nodejs

当我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命令有效。

6个回答

您需要手动创建一个符号链接/usr/bin/nodebash 兼容 shell 的快捷方式:

sudo ln -s `which nodejs` /usr/bin/node

或者,如果您使用非标准外壳,只需硬编码您找到的路径which nodejs

sudo ln -s /usr/bin/nodejs /usr/bin/node

稍后编辑

我在你发布的链接中找到了这个解释

与node包(Amateur Packet Radio Node Program)存在命名冲突,nodejs二进制已经从node重命名为nodejs。您需要将 /usr/bin/node 符号链接到 /usr/bin/nodejs 或者您可以卸载 Amateur Packet Radio Node Program 以避免这种冲突。

稍后编辑

我已经有一段时间没有回答这个问题了。虽然我在这里发布的解决方案对我有用过几次,但用户在评论中报告了更多的解决方案:

来自@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
不用卸载了,评论后,这看起来是shell问题,不是node包问题。
2021-03-13 15:08:57
@Tino 的答案是正确的,请参阅nodejs-legacy包装说明。@BennyMcBenBen 链接的答案也更新了类似的说明。
2021-03-21 15:08:57
好的!虽然,如果我使用zsh,则该node命令有效。
2021-03-22 15:08:57
另外,如何卸载业余分组无线电节点程序?我试过了,sudo apt-get remove node但它说Package node is not installed, so not removed
2021-03-30 15:08:57
@randunel 的回答对我不起作用,因为/usr/bin/env node它不起作用。@BennyMcBenBen 的解决方案确实有效
2021-04-09 15:08:57

我觉得这就是:

须藤更新替代品 --install /usr/bin/node 节点 /usr/bin/nodejs 10

使用 Debian 替代品。

你能更具体地说明这是在做什么吗?
2021-03-11 15:08:57
这似乎是比接受的答案更好的选择,因为它不会手动更改 /usr/bin/ 文件夹,而是使用基础结构来替代命令
2021-03-16 15:08:57
没试过,但我看了update-alternative文档。如果它真的有效,那么它是一个更好的解决方案:)
2021-03-19 15:08:57
@DominikFretz 嗯。使用特定于 Debian 的命令与使用 POSIX 兼容命令的最终结果完全相同(你本来可以这样做的update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10。)每个人都有自己的,但我更喜欢简单的ln
2021-03-19 15:08:57
我必须source ~/.bashrc让这生效
2021-04-09 15:08:57

显然,Ubuntu 版本之间的解决方案有所不同。以下在 Ubuntu 13.10 上对我有用:

sudo apt-get install nodejs-legacy

HTH

编辑:经验法则:

如果您已安装nodejs但缺少/usr/bin/node二进制文件,则还要安装nodejs-legacy. 这只会创建丢失的软链接。

根据我的测试,Ubuntu 17.10 及更高版本/usr/bin/nodenodejs安装已经具有兼容性软链接,因此nodejs-legacy这些版本中缺少它,因为不再需要它。

在 Debian Jessie 中也适用于我。这应该是公认的答案,因为这就是事情的本来面目。只有使用业余无线电包的人不应该这样做。我想知道为什么他们没有像使用 Chromium-bsu 那样重命名无线电包。
2021-03-14 15:08:57
nodejs-legacy不需要太多维护。它只是添加了一个类似于 的软链接sudo ln -s nodejs /usr/bin/node,至少在 LTS 14.04 上
2021-03-15 15:08:57
似乎不再维护 nodejs-legacy。最新构建在 2013-04-10 停止
2021-03-25 15:08:57
这将导致您的系统上有 2 个节点实例,并且不再维护......建议您改为链接到 nodejs。
2021-03-27 15:08:57
在 Ubuntu 14.04 上,nodejs 和 nodejs-legacy 安装相同版本的 Node (0.10.25)。+1 给@Tino。
2021-03-28 15:08:57

我在 Ubuntu 14.04 中遇到了同样的问题。

我已经安装了“nodejs”并且它可以工作,但前提是我使用命令“nodejs”。如果我尝试使用“节点”,则什么也不会发生。

我用下一种方式解决了这个问题:

  1. 安装 nodejs-legacy

    sudo apt-get install nodejs-legacy

之后,当我在命令行中键入“node”时,我收到一条错误消息“/usr/sbin/node: No such file or directory”

  1. 其次,我所做的是“nodejs”上的符号链接:

    须藤 ln -s /usr/bin/nodejs /usr/sbin/node
你的系统上有一些奇怪的东西。 node应该安装到/usr/bin/而不是/usr/sbin/. 它看起来好像你之前node从 hamradio安装了 Ubuntu包(参见packages.ubuntu.com/trusty/all/node/filelist)并且忘记hash -r在 shell 级别运行,这样 shell 仍然记得错误的路径。第二个也ln解决了这个问题,但是在你离开那个外壳之后就不再需要它了。
2021-04-04 15:08:57
这也发生在我身上。前段时间我从源代码安装了节点。 node -v => 0.10.2同时nodejs -v => 5.5.0运行命令which node总是指向这个本地安装。最后,我不得不unset NODE_PATH,它指向本地安装来修复它。在此之后,node -v => 5.5.0npm install 开始为依赖于 Node => 5.0 的包工作。
2021-04-05 15:08:57
顺便说一句,甚至错误的答案是好解释所有的麻烦,由于三个包都非常相似的名称:node/usr/sbin/node完全不同的东西), (nodejs/usr/bin/nodejsnodejs-legacy/usr/bin/node取决于封装nodejs)。
2021-04-07 15:08:57

节点版本管理器 (nvm)

如果您喜欢安装多个 nodejs 版本并在它们之间轻松切换,我建议使用Node Version Manger它还解决了命名问题(nodevs 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)
这解决了我的问题,非常感谢,我找到了一些nvm关于如何在 Ubuntu 14.04 服务器上安装 Node.js 的有用命令
2021-03-17 15:08:57
这对我有用。此处还提供指南:digitalocean.com/community/tutorials/...
2021-03-19 15:08:57