如何让RVM尊重我的捆绑器设置宝石的位置?

时间:2014-10-02 20:31:51

标签: ruby rvm bundler

我将我的bundler配置为将gem安装到每个项目内的.bundle/目录中。

$ cat ~/.bundle/config
---
BUNDLE_PATH: ".bundle"
BUNDLE_BIN: ".bundle/bin"

每当我$GEM_HOME进入我的项目时,如何让RVM尊重此设置并且不将~/.rvm/设置为另一个目录(cd内)?

到目前为止,我有一个little script可以设置$GEM_HOME(以及$PATH$GEM_PATH),只要我cd在我的项目中目录,但最新版本的rvm它已经停止工作,现在RVM基本上取消了Ruby版本,每当我手动更改$GEM_HOME时,我不知道如何让它再次工作。

1 个答案:

答案 0 :(得分:3)

首先,您应该指定要为项目使用非常独立的gemset(考虑它的名称是 myproject42 ):

$ cd myproject42 && rvm --rvmrc --create use 2.1.0@myproject42 --ignore-gemsets

rvmrc选项将在您的文件夹中创建配置文件。你已经与宇宙分开了一半。现在你想稍微修改这个文件,设置你想要的任何东西:

...
unset __hook

# my exports
export GEM_PATH=`pwd`
export GEM_HOME=`pwd`
...

cd进入此目录。这将导致警告:

You are using '.rvmrc', it requires trusting, it is slower and ...
[LINES SKIPPED]
************************
y[es], n[o], v[iew], c[ancel]> y
Using: /tmp/myproject42

确认您知道此修改后,gemset设置为您想要的(在这种情况下为/tmp/myproject42。)您可以验证:

$ rvm gemset dir
Warning! PATH is not properly set up, '/tmp/myproject42/bin' is not available,
[LINES SKIPPED]
/tmp/myproject42

您可能希望进行一些清理,例如禁止这些警告。在这个警告中打印出“howtos”,它们非常直接,所以我将初始过程的描述保留为“脏”,以准确显示它将如何在您的机器上运行。

我希望这会有所帮助。