我将我的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
时,我不知道如何让它再次工作。
答案 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”,它们非常直接,所以我将初始过程的描述保留为“脏”,以准确显示它将如何在您的机器上运行。
我希望这会有所帮助。