Rails是否需要作为系统gem安装?

时间:2017-02-09 23:49:10

标签: ruby-on-rails rbenv

在描述使用rbenv和Bundler配置环境的每个设置中,说明始终是使用gem install bundler将bundle作为系统gem安装。通常,他们也会推荐rbenv-bundler rbenv plugin,但the maintainers of rbenv discourage this

没有描述如何安装Rails。初始化新的Rails项目会为bundler创建一个基本的Gemfile。但是,为了初始化Rails项目,需要安装Rails。制作目录,编写包含Rails的基本Gemfile,运行bundle install,然后将Rails初始化为当前目录似乎很奇怪甚至是错误的。事实上,如果它起作用的话,我怀疑它甚至会运作良好。

那么,Rails是否需要作为gem install rails的系统gem安装?如果是这样,如何管理多个版本的Rails,特别是使用rbenv?

3 个答案:

答案 0 :(得分:2)

答案是否定的,您不要将rails作为系统gem安装。创建一个项目文件夹,添加.ruby-version文件并在此文件中添加您想要的ruby版本,即2.3.0。 rbenv使用此文件中指定的版本,它不会成为系统的红宝石。

现在您可以从此目录中执行gem install bundler并创建Gemfile并添加您的rails版本。现在运行bundle install并将其滚动到RAILS的轨道上.....

答案 1 :(得分:2)

NOT 安装rails作为系统gem完全有意义。

在不搞乱你使用的rbenv或其他ruby版本管理器的情况下,下面是使用Gemfile从目录创建(初始化)新Rails应用程序的简短步骤:

mkdir rails_app
cd rails_app
vi Gemfile # Edit it to include a rails version you need
bundle --path vendor # Wait for bundler to finish
bundle exec rails new ./

最后一步会问:Overwrite /path/to/rails_app/Gemfile? (enter "h" for help) [Ynaqdh]。输入y以获取默认的Rails Gemfile内容。

注意:上述步骤指定了本地vendor目录(在rails app文件夹中),以避免将gems安装到系统全局范围。

答案 2 :(得分:0)

将铁轨强行拉到供应商的宝石上。

$ mkdir foo
$ cd foo
$ bundle config --local path vendor
$ rails new .