是否可以使用rbenv(例如2.3和3.1)使用多个版本的rails?在rvm中使用gemsets很容易,但是我想知道现在最好的方法是切换到rbenv(同样,我正在寻找一种没有rbenv-gemset的方法)。
答案 0 :(得分:54)
不确定你是否得到了答案,但我认为我会提供我所做的,但似乎有效。
因此,一旦安装了rbenv,并使用它来安装特定的ruby版本,就可以为该ruby安装多个版本的rails。
步骤1.根据ruby版本安装所需的任何版本的导轨
% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11
通过在命令行中使用“RBENV_VERSION = 1.9.2-p290”前缀,您将指定应该关注哪个ruby rbenv。
然后使用“rbenv exec”命令,您可以安装rails。只需使用示例中的版本标志来指定所需的版本。不确定你是否可以一次安装多个版本,但我只是根据需要多次运行此命令来安装我想要的每个版本。
注意:这将全部在您的rbenv目录中进行管理,因此它非常安全且包含在内。
步骤2.通过指定所需的rails版本来构建新的rails项目。
% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project
步骤3.不要忘记进入该项目并设置本地rbenv ruby版本。
% cd my_project
% rbenv local 1.9.2-p290
现在,如果您想要删除此项目,只需正常删除它。
如果要从rbenv gems删除/管理rails版本,可以使用常规gem命令,只需在命令行前加上:
% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command}
当然,你可以很容易地删除一个完整的ruby版本及其在rbenv中管理的所有垫片等。我喜欢自包含的一切。
希望这有帮助。
作为参考,至少有一些这方面的内容是非常好的:
答案 1 :(得分:22)
有一个名为rbenv-gemset的rbenv插件应该与rvm gemset
- 命令类似,但由于rbenv从未打算以这种方式工作,我还没有尝试过。
我通常使用Bundler来管理Rails版本,正如Nathan在其他一个答案的评论中所建议的那样。我使用我想要的Rails版本创建一个Gemfile,运行bundle install
,创建Rails应用程序,让它替换Gemfile并让Bundler接管:
mkdir my-rails-app
cd my-rails-app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '3.2.17'" >> Gemfile
bundle install
bundle exec rails new . --force --skip-bundle
bundle update
如果您想了解更多细节,我写了an article on my blog来了解它。
希望它有所帮助!