首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nvm $HOME/nvm/nvm.sh启动时nodejs处于活动状态

使用nvm $HOME/nvm/nvm.sh启动时nodejs处于活动状态
EN

Stack Overflow用户
提问于 2012-11-26 07:46:46
回答 3查看 1.6K关注 0票数 2

我用nvm安装了node,它工作得很好,但每次新会话我都需要执行source $HOME/nvm/nvm.sh来激活node。

我如何才能在启动时保持活动状态,这样就不需要在每个sssh会话中都键入source $HOME/nvm/nvm.sh

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

代码语言:javascript
复制
>  /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上执行该命令,则可以正常工作

欢迎任何帮助

问候

EN

回答 3

Stack Overflow用户

发布于 2015-06-24 04:23:57

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

代码语言:javascript
复制
[[ -s /home/$USER/.nvm/nvm.sh ]] && . /home/$USER/.nvm/nvm.sh
票数 1
EN

Stack Overflow用户

发布于 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保留在文件系统中的其他位置,并在初始化脚本中这样做

代码语言:javascript
复制
exec /bin/bash /root/nvm/nvm.sh

使用#!/bin/bash启动node_start.sh可能也足够了。

您可能还想在其他人遇到此错误的地方订阅issue 168 on github for nvm

票数 0
EN

Stack Overflow用户

发布于 2013-07-23 06:19:40

当初始化脚本需要以#!/bin/bash开头时,我希望它以#!/bin/sh开头。当然,可能有很多很好的理由不用Bash编写初始化脚本……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13556847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档