【问题标题】:How can I execute a shell command in my rvm enviroment?如何在我的 rvm 环境中执行 shell 命令?
【发布时间】:2013-09-23 12:20:19
【问题描述】:

我正在尝试从 Ruby 执行 shell 命令,但为了使这些命令正常工作,必须选择 RVM 环境。我找不到这样做的方法。

例如我正在尝试:

require "rubygems"
require "rvm"

RVM.gemset_use! "ruby-1.9.3-p286@my_project"
%x[rails s]

但是似乎没有加载 rvm 环境,因为找不到 gem。

更新

我看到的唯一方式是

%x[source /Users/fguillen/.rvm/environments/ruby-1.9.3-p286@my_project && rails s]` 

这是最好的方法吗?

【问题讨论】:

  • 你能在x[rails s]之前试试x[rvm use 1.9.3-p286@my_project]吗?
  • 可能你有ruby-1.9.3-p286@my_project的类型,不需要ruby-前缀
  • 为什么要在 Ruby 中设置 RVM 环境?
  • @Stefan 我不想要它。我只需要为了在正确的 rvm 环境中执行进一步的命令,并且可以使用正确的 ruby​​ 版本和正确的 gemset
  • @maximus 我尝试了rvm use ...,我得到了错误RVM is not a function, selecting rubies with 'rvm use ...' will not work.

标签: ruby shell rvm


【解决方案1】:

我认为rvm-with 正是您正在寻找的。它可以让你这样做:

require "rvm/with"
RVM.with "1.9.3-o286@my_project" do |r|
  puts r.execute "rails s"
end

【讨论】:

  • 它看起来很酷(为此 +1),但它对我不起作用.. 它抛出一个错误,在某些时候它执行这个 ruby_version_path=$( rvm ruby-1.9.3-p286@my_project do rvm env -- --path ) && source $ruby_version_path 并失败 -bash: export: No such file or directory跨度>
  • 现在可以使用了!问题出在我使用的rvm 版本...太旧了。
猜你喜欢
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多