nodejs在启动时使用nvm $ HOME / nvm / nvm.sh激活

时间:2012-11-25 23:46:46

标签: node.js nvm

我用nvm安装了节点它工作正常,但我需要source $HOME/nvm/nvm.sh每个新会话才能使节点生效

如何在启动时保持活动状态,因此无需在每个sssh会话中键入source $HOME/nvm/nvm.sh

我尝试将此命令source $HOME/nvm/nvm.sh添加到/etc/rc.local但我收到以下错误

>  /etc/init.d/node_start.sh: 13: root/nvm/nvm.sh: Bad substitution
>     /etc/init.d/node_start.sh: 78: root/nvm/nvm.sh: [[: not found
>     /etc/init.d/node_start.sh: 78: root/nvm/nvm.sh: [[: not found
>     /etc/init.d/node_start.sh: 129: root/nvm/nvm.sh: [[: not found
>     /etc/rc.local: 14: /etc/rc.local: source: not found

但是,如果我在shell上完成该命令正常工作

欢迎任何帮助

此致

3 个答案:

答案 0 :(得分:1)

您应该将以下行添加到〜/ .bashrc文件的末尾:

(define-struct attendance-event (date flag))

答案 1 :(得分:0)

init脚本以root身份运行,而不是您的用户。如果您想要自己的nvm.sh来源,则不应使用$HOME,而应使用/home/vitor/nvm/nvm.sh之类的绝对路径。此外,init脚本可能在dash下运行,因此您不应使用[[构造。只需使用[

中所述的exec /bin/bash /root/nvm/nvm.sh

所以我去了this dash as /bin/sh article

的nvm.sh源代码

我不认为这与破折号兼容。所以我建议你把nvm.sh留在文件系统的其他地方,然后在init脚本中执行

node_start.sh

使用#!/bin/bash开始{{1}}也可能就足够了。

您可能还想订阅其他人遇到此错误的https://github.com/creationix/nvm/blob/master/nvm.sh

答案 2 :(得分:0)

我希望您的init脚本在需要以#!/bin/sh开头时以#!/bin/bash开头。当然,可能有很多很好的理由不在Bash中编写init脚本......