chruby 未根据 .ruby 中的值更改为 ruby 的正确版本 - 新终端选项卡上的版本
chruby not changing to the proper version of ruby according to the value in .ruby-version on new terminal tab
我正在使用 source /usr/local/opt/chruby/share/chruby/auto.sh 自动将 ruby 更改为 .ruby-version 中的版本,但不幸的是这只适用于 cd.
当我在 mac 终端中打开一个新选项卡时,它会打开到我在上一个选项卡中所在的同一目录,但自动更改不起作用。我对此的解决方案是 cd ..
和 cd
返回,这会触发更改。显然,这很烦人。
我尝试在新标签中手动调用函数chruby_auto
,但是没有效果。
有人可以提供在这种情况下如何更新我的 ruby 版本的解决方案吗?我更喜欢自动解决方案,但会满足于调用命令。
其实没关系,我将其追溯到我的 .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
所以我想为了后代留下这个答案
除非我误解了你的问题,否则听起来你想要一个 ~/.ruby-version
文件(不同于项目中的 .ruby-version
文件),以便你可以确定 [= 的版本25=] 你想在打开一个新终端时默认使用 window (这个值将被项目 .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
。有关详细信息,请参阅 Default Ruby section of chruby
's README file.
我正在使用 source /usr/local/opt/chruby/share/chruby/auto.sh 自动将 ruby 更改为 .ruby-version 中的版本,但不幸的是这只适用于 cd.
当我在 mac 终端中打开一个新选项卡时,它会打开到我在上一个选项卡中所在的同一目录,但自动更改不起作用。我对此的解决方案是 cd ..
和 cd
返回,这会触发更改。显然,这很烦人。
我尝试在新标签中手动调用函数chruby_auto
,但是没有效果。
有人可以提供在这种情况下如何更新我的 ruby 版本的解决方案吗?我更喜欢自动解决方案,但会满足于调用命令。
其实没关系,我将其追溯到我的 .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
所以我想为了后代留下这个答案
除非我误解了你的问题,否则听起来你想要一个 ~/.ruby-version
文件(不同于项目中的 .ruby-version
文件),以便你可以确定 [= 的版本25=] 你想在打开一个新终端时默认使用 window (这个值将被项目 .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
。有关详细信息,请参阅 Default Ruby section of chruby
's README file.