【问题标题】:nodejs gone after linux rebootlinux重启后nodejs消失了
【发布时间】:2014-01-04 13:11:15
【问题描述】:

我刚刚使用 nvm 安装了 nodejs 版本 0.10.14,它安装成功。 同样在安装 nodejs 之前,我安装了 zeromq 2.2.0 版。

出于测试目的,我试图在下面运行一个基本的 pub 示例。

var zmq = require('zmq');
var socket = zmq.socket('pub');

console.log("Binding socket on port 8800...");

socket.bind('tcp://localhost:8800', function(err){
    if(err){
        console.log(err)
    } else{
        console.log("listening on port 8800");
    }
});
socket.send("hello this is testServer2 on port 8800...");

但它抛出错误 -

events.js:72
    throw er; // Unhandled 'error' event
          ^
TypeError: Socket is busy
    at Socket._ioevents (/home/zishan/node_modules/zmq/lib/index.js:198:22)
    at Socket._flush (/home/zishan/node_modules/zmq/lib/index.js:343:23)
    at Socket.send (/home/zishan/node_modules/zmq/lib/index.js:318:42)
    at Object.<anonymous> (/home/zishan/newsURLCollector/testServer2.js:16:8)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)

8800 端口已经使用 ufw 打开。

我尝试在谷歌上搜索套接字繁忙错误,但没有运气,我认为重新启动 Ubuntu 很好,问题变得更糟。当我重新登录并尝试再次运行上述示例时,系统会抛出以下消息:

zishan@news01:~/newsURLCollector$ node testServer2.js

The program 'node' can be found in the following packages:
 * node
 * nodejs-legacy
Try: sudo apt-get install <selected package>

为什么工作节点停止工作并且无法找到节点。然后我按照系统提示做了 sudo apt-get install node 下面是结果:

zishan@news01:~$ sudo apt-get install node
[sudo] password for zishan:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
  libpgm-5.1-0
Use 'apt-get autoremove' to remove it.
The following NEW packages will be installed
  node
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
Need to get 0 B/1,284 B of archives.
After this operation, 38.9 kB of additional disk space will be used.
Selecting previously unselected package node.
(Reading database ... 66172 files and directories currently installed.)
Unpacking node (from .../node_0.3.2-7.4_all.deb) ...
Processing triggers for man-db ...
Setting up node (0.3.2-7.4) ...
zishan@news01:~$ node -v

然后我试图找到节点版本但没有任何反应,我现在没有收到节点提示但是当我执行“哪个节点”时它说 - /usr/sbin/node

我不知道重启后出了什么问题。谁能解释一下。

【问题讨论】:

    标签: node.js zeromq


    【解决方案1】:

    当 NVM 加载时,它会加载当前标记为 default 的任何 Node 版本。

    nvm install v0.10.14 将安装 v0.10.14 并告诉 NVM 通过在当前终端中键入 node 使其可供您使用,但它不会将其标记为默认值,因为您可以轻松安装 5节点的版本。 NVM 也不会做任何花哨的事情,比如记住你上次使用的 Node 版本,因为可能你打开了 10 个终端,每个终端都有不同的版本。

    您需要做的就是运行nvm use v0.10.14 告诉您给定的终端将v0.10.14 公开为node

    在您的情况下,最好的办法可能是将其设置为默认值,因此它将在每次重新启动和新终端时使用它:

    nvm alias default v0.10.14
    

    正如你已经知道的那样,通过运行

    apt-get install node
    

    你安装了这个:http://packages.qa.debian.org/n/node.html

    我现在也推荐你apt-get remove nodejs 并坚持使用nvmdeb 软件包很快就会过时,使用 NVM 可以让您更轻松地跟上。

    【讨论】:

    • 感谢 logan,我不知道 nvm 的默认工作。 (或者我只是忽略了它)。做得好 apt-get 安装了最近的 0.10.24。但是是的,我将在以后的安装中使用 nvm。
    • nvm alias default v0.10.14 中删除v,输入nvm 以查看示例。
    • @NabilKadimi 我不确定我是否遵循。你可以做任何一个,它工作正常。
    【解决方案2】:

    经过长时间的努力,它现在可以工作了,我使用下面的链接删除,然后使用 apt-get 再次安装节点。但我现在唯一使用的新功能是使用清除开关删除节点。

    https://askubuntu.com/questions/235655/node-js-conflicts-sbin-node-vs-usr-bin-node

    下面我使用了上面的链接:

    sudo apt-get --purge 删除节点 sudo apt-get --purge 删除 nodejs sudo apt-get install nodejs

    现在 nodejs 和 zmq 工作正常。我认为是 purge 命令完成了我之前从源 tar 构建并手动删除的工作,因为单独的 apt-get 不起作用!

    注意其他人 - 并非所有版本的 nodejs 都与 zmq 兼容,我正在使用的一个是 Nodejs - 0.10.24 zeromq - 2.2.0

    【讨论】:

      【解决方案3】:

      基本上安装在您机器上的包被称为“nodejs”而不是“node”。所以你的命令需要改成:

      zishan@news01:~/newsURLCollector$ nodejs testServer2.js

      ubuntu 中的“node”包已经被业余分组无线电“节点”程序占用,所以当 node 出现在 ubuntu apt 包中时,它被重命名为 nodejs。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多