我用nvm安装了node,它工作得很好,但每次新会话我都需要执行source $HOME/nvm/nvm.sh来激活node。
我如何才能在启动时保持活动状态,这样就不需要在每个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上执行该命令,则可以正常工作
欢迎任何帮助
问候
发布于 2015-06-24 04:23:57
您应该将以下行添加到~/.bashrc文件的末尾:
[[ -s /home/$USER/.nvm/nvm.sh ]] && . /home/$USER/.nvm/nvm.sh发布于 2012-11-26 08:01:52
init脚本是以root用户身份运行的,而不是您的用户。如果你想获取你自己的nvm.sh,你不应该使用$HOME,而应该使用像/home/vitor/nvm/nvm.sh这样的绝对路径。另外,初始化脚本可能在dash下运行,因此不应该使用[[构造。只需按照this dash as /bin/sh article中的描述使用[即可
所以我去阅读了https://github.com/creationix/nvm/blob/master/nvm.sh上的nvm.sh源代码
我不认为这与dash兼容。因此,我建议您将nvm.sh保留在文件系统中的其他位置,并在初始化脚本中这样做
exec /bin/bash /root/nvm/nvm.sh使用#!/bin/bash启动node_start.sh可能也足够了。
您可能还想在其他人遇到此错误的地方订阅issue 168 on github for nvm。
发布于 2013-07-23 06:19:40
当初始化脚本需要以#!/bin/bash开头时,我希望它以#!/bin/sh开头。当然,可能有很多很好的理由不用Bash编写初始化脚本……
https://stackoverflow.com/questions/13556847
复制相似问题