使用rvm和bundler

时间:2016-12-23 17:00:42

标签: ruby rvm bundler

我是ruby的新手,我正在努力实现以下目标。

当我运行bundle install时,我的项目应该创建一个gemset,其中包含项目gemset中安装的项目的Gemfile中的所有gem依赖项。

所以我有以下文件

  • 的Gemfile
  • .ruby版本
  • .ruby-宝石

我的.ruby-version看起来像这样

红宝石2.0.0

我的.ruby-gemset文件如下所示

  • my_service

我的Gemfile只有ruby gem依赖项

当我执行bundle install然后执行echo $GEM_HOME时,我的$ GEM_HOME仍然是默认值,当我执行rvm list时,当前的ruby版本是ruby-2.3.0,这不是什么我在.ruby-version文件中指定,当我去〜/ .rvm / gems时,我在该文件夹中看不到我的gemset。

我错过了什么。谢谢!

2 个答案:

答案 0 :(得分:1)

  

我的.ruby-version看起来像这样

ruby-2.0.0

根据rvm docs,它应该如下所示:

2.0.0

使用.文件的rvm脚本由cd命令触发 - 而不是bundle install命令。因此,请尝试从项目目录中删除,然后再返回到项目目录中。然后检查之前检查的内容。

我刚创建了一个新的rails项目:

~/rails_projects$ rails new proj1

然后我在项目目录中创建了.ruby-version.ruby-gemset文件:

~/rails_projects$ cd proj1
~/rails_projects/proj1$ echo 1.9.3-p551 > .ruby-version
~/rails_projects/proj1$ echo proj1gemset > .ruby-gemset

cd退出项目目录后再返回,运行的rvm脚本产生了一些输出:

~/rails_projects/proj1$ cd

~$ cd rails_projects/proj1/
ruby-1.9.3-p551 - #gemset created /Users/7stud/.rvm/gems/ruby-1.9.3-p551@proj1gemset
ruby-1.9.3-p551 - #generating proj1gemset wrappers..........

下次进入项目目录时,您将无法看到该输出。

随后,一切都设置正确:

~/rails_projects/proj1$ ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin14.5.0]

~/rails_projects/proj1$ rvm gemset list

gemsets for ruby-1.9.3-p551 (found in /Users/7stud/.rvm/gems/ruby-1.9.3-p551)
   (default)
   global
=> proj1gemset

~/rails_projects/proj1$ echo $GEM_HOME
/Users/7stud/.rvm/gems/ruby-1.9.3-p551@proj1gemset

~/rails_projects/proj1$ ls ~/.rvm/gems
cache               
ruby-1.9.3-p551@proj1gemset
...
...

另一方面,如果您在创建rvm cd文件后没有.退出项目目录,而是运行bundle install,则gemset赢了&# 39;创造。

答案 1 :(得分:-1)

尝试添加

ruby 2.0.0 

进入你的Gemfile