在描述使用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?
答案 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 .