RVM/rbenv 用 RVM 安装 Ruby 之后,脚本前面 #!/usr/bin/env ruby 是不可以用的吗?有什么解决方法呢?

oa414 · 2012年09月13日 · 最后由 suupic 回复于 2012年09月13日 · 7905 次阅读

rvm 安装 Ruby 之后,Ruby 被安装到了.~/rvm 下对吧?然后在 Bashrc 上加上 RVM 的环境变量使 Ruby 的程序能被执行,像原来可以在脚本面前直接加上#!/usr/bin/env ruby 执行的功能如何实现?除了把 usr/bin/env 换成对应~/.rvm 的目录?(那个目录太长了……)

系统的 Ruby 还在的啊

可以用吧,你终端输入 env ruby -v 看看,指向的是你当前 rvm 的 ruby 版本

可以用。如果出现问题,可能是你执行脚本的用户环境没有载入 rvm 的环境变量。

#2 楼 @diudiutang 更直接的方法是看看$PATH 变量的值

$ echo $PATH
/home/john/software/otp/bin:/home/john/.rvm/gems/ruby-1.9.3-p194/bin:/home/john/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/john/.rvm/rubies/ruby-1.9.3-p194/bin:/home/john/.rvm/bin:/home/john/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/john/software/apache-maven-2.2.1/bin:/home/john/software/groovy-1.7.10/bin:/home/john/.rvm/bin

其实不神秘,rvm use 的目的就是覆盖原来的系统路径。 另外如果不知道第一行为什么要这么写,建议 google 一下 shebang,然后 man 一下 evn

谢谢帮助

#1 楼 @huacnlee 我因为第一次装 ruby 的时候是直接装的,后来版本出现了问题,加上系统出现了一些其他问题,重装后就按照http://ruby-china.org/wiki/install_ruby_guide 装了,系统里只有 RVM 的 ruby,我装上试试看

#4 楼 @fsword

是不是在平时,系统是优先用自己定义的 rvm 环境变量里面的 Ruby,就没有用/usr/bin 里面的 ruby?

#5 楼 @oa414 当你执行rvm use system以后就是系统安装的 ruby,不过这种问题不要再问别人了,自己去echo $PATH是学习的第一步

参考 https://rvm.io/integration/cron/

我觉得你把 #!/usr/bin/env ruby 换成 #!/usr/local/rvm/bin/ruby-1.9.2-p290@projectX 应该就 ok 了,未测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号