我使用源代码/usr/local/opt/chruby/share/chruby/auto.sh自动将ruby更改为.ruby版本中的版本,但不幸的是,这只适用于cd。
当我在我的mac终端中打开一个新的选项卡时,它会打开到与前一个选项卡中相同的目录下,但是自动更改不起作用。我对此的解决方案是cd ..和cd返回,这将触发更改。很明显,这太累人了。
我尝试在新选项卡中手动调用函数chruby_auto,但这没有任何效果。
在这种情况下,有人能提供一个如何更新我的红宝石版本的解决方案吗?我更喜欢一个自动的解决方案,但会满足于命令调用。
发布于 2016-05-05 19:25:18
实际上,我把这个问题追溯到了.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所以我想把这个答案留给后人吧
发布于 2016-05-07 03:46:03
除非我误解了您的问题,否则听起来您需要一个~/.ruby-version文件(与项目中的.ruby-version文件不同),这样您就可以确定在打开一个新的终端窗口时,默认情况下要使用哪个版本的.ruby-version (如果该值存在的话,它将被项目.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,不需要在~/.bashrc中显式地调用chruby。有关更多信息,请参见's README file。
https://stackoverflow.com/questions/37058625
复制相似问题