32

是否可以使用 rbenv 使用多个版本的导轨(例如 2.3 和 3.1)?使用 rvm 中的 gemsets 很容易,但我想知道现在我已经切换到 rbenv 最好的方法是什么(另外,我正在寻找一种没有 rbenv-gemset 的方法)。

4

2 回答 2

60

不确定您是否对此有答案,但我想我会提供我所做的并且它似乎有效。

因此,一旦安装了 rbenv,并使用它来安装特定的 ruby​​ 版本,就可以为该 ruby​​ 安装多个版本的 rails。

步骤 1. 为每个 ruby​​ 版本安装你想要的任何版本的 rails

% 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

STEP 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}

当然,您可以很容易地删除在 rbenv 中管理的完整 ruby​​ 版本及其所有 shims 等。我喜欢自给自足的一切。

希望这可以帮助。

作为参考,这是至少其中一些内容的一个很好的演练:

http://ascarter.net/2011/09/25/modern-ruby-development.html

于 2012-03-11T22:41:02.493 回答
28

有一个名为rbenv-gemset的 rbenv 插件,它的行为应该与 -command 类似,rvm gemset但由于 rbenv 从未打算以这种方式工作,所以我没有尝试过。

正如 Nathan 在其他答案之一的评论中所建议的那样,我通常使用 Bundler 管理 Rails 版本。我用我想要的 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

如果你想了解更多细节,我在我的博客上写了一篇关于它的文章。

希望能帮助到你!

于 2014-05-02T16:05:37.140 回答