Ruby 在cd挂钩后的RVM
我正在尝试使用rails应用程序在我Ruby 在cd挂钩后的RVM,ruby,rvm,Ruby,Rvm,我正在尝试使用rails应用程序在我cd进入目录后运行命令 我的~/.rvm/hooks/after_cd的内容是: echo "Now using $rvm_ruby_string" echo "Now using $rvm_ruby_string" 我的~/.rvm/hooks/after_use的内容是: echo "Now using $rvm_ruby_string" echo "Now using $rvm_ruby_string" 当我使用$rmv 1.9.2时,我看到了我
cd
进入目录后运行命令
我的~/.rvm/hooks/after_cd
的内容是:
echo "Now using $rvm_ruby_string"
echo "Now using $rvm_ruby_string"
我的~/.rvm/hooks/after_use
的内容是:
echo "Now using $rvm_ruby_string"
echo "Now using $rvm_ruby_string"
当我使用$rmv 1.9.2时,我看到了我的echo,但是当我cd
进入我的应用程序的rails根目录时,我没有收到任何echo
我使用的after_cd
挂钩是否错误
$rvm-v
表示:
rvm 1.0.8 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]
首先,您需要了解rvm如何覆盖系统的默认cd命令
这是一个很好的解释
简而言之,rvm在.rvm/script/cd中定义了这样一个函数
cd(){
builtin cd $* #run system cd
source after_cd_hooks #run hook scripts
}
如果您研究一下这个cd()是如何定义的,您可以找到这一行
uuu rvm_u项目u rvmrc&&uuu rvm_ucd后| |真
\uuuu rvm\u project\u rvmrc
是检查您更改到的目录中是否存在.rvmrc的功能
因此,钩子脚本将仅在项目根目录中存在.rvmrc时才来源。
因此,请创建您的.rvmrc并重试该cd。祝你好运
> /path/to/app/root/.rvmrc
cd /path/to/app/root
我的rvm版本:
rvm -v
rvm 1.23.14 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
rvm-v
rvm 1.23.14(稳定)作者:韦恩E.塞根,迈克尔·帕皮斯[https://rvm.io/]
当我检查自己的rvm--version
时,它会显示1.8.0
。也许升级到更新的RVM会有所帮助?1.8.5是最新和最稳定的版本。@SooDesuNe对我来说很有用