如何根据.ruby-version中的值使用chruby手动更改ruby的版本

时间:2016-05-05 19:19:23

标签: ruby chruby

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

当我在我的mac终端中打开一个新选项卡时,它会打开到我在上一个选项卡中所在的目录,但是自动更改不起作用。我的解决方案是cd ..cd回来,这会触发更改。显然,这很烦人。

我尝试在新标签中手动调用函数chruby_auto,但这没有效果。

在这种情况下,有人可以提供如何更新我的ruby版本的解决方案吗?我更喜欢自动解决方案,但是会接受命令来调用。

2 个答案:

答案 0 :(得分:1)

实际上没关系,我在.bashrc中按照这些调用的顺序追溯到一个问题

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行之后。

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

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

答案 1 :(得分:0)

除非我误解了你的问题,否则听起来你想要一个~/.ruby-version文件(与项目中的.ruby-version文件不同),这样你就可以确定你想要的Ruby版本在打开新的终端窗口时默认使用(如果项目.ruby-version文件存在,则该值将被项目~/.bashrc覆盖)。例如,在我的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只包含chruby,无需在~/.bashrc中明确调用<?php query_posts(array('post_type'=>'my_product','posts_per_page'=>1,'orderby'=>'rand')); if(have_posts()): while(have_posts()): the_post(); ?> <div class="media"> <div class="media-left"> <a href="#" class="post-thumbnail"> <?php if (has_post_thumbnail()) { the_post_thumbnail(); } else { ?> <img class="media-object new-pro-slide-img" src="<?php bloginfo('template_url');?>/images/default.jpg" class="img-responsive" alt="..." style="max-width: 200px; max-height: 150px;"> <?php }?> </a> </div> <div class="media-body media-body-white media-body-white"> <h4 class="media-heading"><?php the_title();?></h4> <p><?php the_excerpt(); ?> </p> <a href="<?php the_permalink(); ?>"><b>بیشتر بدانید</b> <i class="fa fa-chevron-left"></i></a> </div> </div> <?php endwhile; 。有关详细信息,请参阅Default Ruby section of chruby's README file