首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chruby不根据新终端选项卡上. ruby -version中的值更改为正确的ruby版本

chruby不根据新终端选项卡上. ruby -version中的值更改为正确的ruby版本
EN

Stack Overflow用户
提问于 2016-05-05 19:19:22
回答 2查看 1.4K关注 0票数 2

我使用源代码/usr/local/opt/chruby/share/chruby/auto.sh自动将ruby更改为.ruby版本中的版本,但不幸的是,这只适用于cd。

当我在我的mac终端中打开一个新的选项卡时,它会打开到与前一个选项卡中相同的目录下,但是自动更改不起作用。我对此的解决方案是cd ..cd返回,这将触发更改。很明显,这太累人了。

我尝试在新选项卡中手动调用函数chruby_auto,但这没有任何效果。

在这种情况下,有人能提供一个如何更新我的红宝石版本的解决方案吗?我更喜欢一个自动的解决方案,但会满足于命令调用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-05 19:25:18

实际上,我把这个问题追溯到了.bashrc中的调用顺序。

不正确:

代码语言:javascript
复制
source /usr/local/opt/chruby/share/chruby/chruby.sh
source /usr/local/opt/chruby/share/chruby/auto.sh
chruby ruby-2.3.0 

我发现你必须在默认行之后调用自动行。请注意,默认行也必须在chruby.sh行之后。

更正:

代码语言:javascript
复制
source /usr/local/opt/chruby/share/chruby/chruby.sh
chruby ruby-2.3.0 # default order important, if comes after auto.sh, will undo the auto change
source /usr/local/opt/chruby/share/chruby/auto.sh

所以我想把这个答案留给后人吧

票数 6
EN

Stack Overflow用户

发布于 2016-05-07 03:46:03

除非我误解了您的问题,否则听起来您需要一个~/.ruby-version文件(与项目中的.ruby-version文件不同),这样您就可以确定在打开一个新的终端窗口时,默认情况下要使用哪个版本的.ruby-version (如果该值存在的话,它将被项目.ruby-version文件覆盖)。例如,在我的~/.bashrc中,我有:

代码语言:javascript
复制
if [[ -e /usr/local/share/chruby ]]; then
  # Load chruby
  source /usr/local/share/chruby/chruby.sh
  # Allow auto-switching of Ruby version when
  # directory has a .ruby-version file
  source /usr/local/share/chruby/auto.sh
fi

我的~/.ruby-version只包含2.3.1,不需要在~/.bashrc中显式地调用chruby。有关更多信息,请参见's README file

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

https://stackoverflow.com/questions/37058625

复制
相关文章

相似问题

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