在tmux会话中使用nvmpipe理多个Node.js版本
简短的问题
我怎样才能让nvm使用tmux ?
path问题
MarkHu在回答中推测,问题与PATH有关。 下面是进入tmux之前和tmux之后bash中的path比较。 (我用换行符replace每个path,以便于比较。)
现在我很好奇:
- 为什么在path中复制
/usr/local/sbin
和/Users/matthew/bin
? - 为什么
/Users/matthew/.nvm/v0.11.5/bin
与/usr/local/sbin
和/Users/matthew/bin
一起移动到path的末尾?
背景
我正在运行OS X 10.8.4山狮。 我使用以下方法安装了tmux v1.8和Node.js :
brew install tmux brew install node
然后我决定我想要pipe理多个节点版本,所以我安装了nvm :
curl https://raw.github.com/creationix/nvm/master/install.sh | sh
如果我不在一个tmux会话, nvm似乎正常工作。 当我启动一个tmux会话时,它会发现由Homebrew安装的Node.js ,而不是使用nvm版本。 有关如何让nvm使用tmux的任何想法?
$ which node /Users/matthew/.nvm/v0.11.5/bin/node $ tmux $ which node /usr/local/bin/node $ nvm use v0.11.5 Now using node v0.11.5 $ which node /usr/local/bin/node
检查您的$ PATH环境var之前和之后。
把它设置在〜/ .bash_profile和〜/ .bashrc之间是有区别的,这取决于你如何configuration它们。
此外,如果您认为可能需要设置其他与node.js相关的variables,则可能需要阅读https://unix.stackexchange.com/questions/15453/using-environment-variables-in-tmux-conf-files 。
我只是运行:
nvm deactivate nvm use xx
这似乎工作。 您可以根据您正在处理的项目编写所需的版本。