我知道在使用时gem install
,gem将存储在/home/username/.rvm/gems/下,gem下安装gem.
但是如果我使用Bundler并在Gemfile中指定gem,那么当我运行bundle install时,那些gem会被存储在哪里?如果我已经安装了gem gem install
,如果我运行bundle install,它会使用之前安装的gem gem install
吗?
有没有一种方法来创建关联.ruby-version
,并.ruby-gemset
创建一个新的宝石时的文件吗?
使用旧版本的rvm,可以做到rvm --create --rvmrc 1.8.7@project
,但这会创建.rvmrc
文件.
我以为我读过某个地方我们可以使用--ruby-version
命令行开关,但我没有成功.
寻找像gem list
RVM宝石集中的东西,但让它忽略全局和默认宝石中的宝石,这样我就可以很容易地看到活动宝石集中的宝石(并且只有活动宝石集).
当我进入我的项目目录时,为什么rvm没有切换到@project_gemset?我的.ruby-gemset文件中的gemset名称与rvm gemset list中列出的名称相匹配.
> cd project > ls -A .ruby-gemset > cat .ruby-gemset project_gemset > rvm gemset list gemsets for ruby-1.9.3-p392 (found in /Users/david/.rvm/gems/ruby-1.9.3-p392) => (default) global project_gemset
我使用RVM来管理Ruby版本.
在我的项目中,我使用Bundler来管理项目的宝石.
RVM也有gemsets.
gemset中的Gem与Bundler的gem没有关联.←这是对的吗?
我得出了这个结论,因为存储在不同位置的gem文件:
RVM gemset:~/.rvm/gems/ruby-2.0.0-p247@myApp
Bundler:[my_app_dir]/vendor/bundle/gems
所以app使用Bundler gems,而不是RVM gemset gems.
但是当我向我的Gemfile添加gem时,RubyMine IDE向我显示警告,这个gem不在RVM gemset中.所以我也将这个gem添加到RVM gemset(只是为了摆脱这个警告).
所以问题是:
在我的电脑上,我ruby1.9.2-p290
使用system
gemset 运行.我想继续在我的开发环境中测试Ruby的边缘版本,但我不想再次安装所有的gem并保持相同的gem文件的相同副本.
我怎么能切换到ruby1.9.3-p325
使用system
rvm 相同的gemset?
当我打开终端然后进入rails应用程序时,rvm会将gemset加载到.ruby-gemset
文件中,如下所示:
> cd my_application/
> rvm gemset list
Run Code Online (Sandbox Code Playgroud)
输出如下:
gemsets for ruby-2.2.2 (found in /home/yakout/.rvm/gems/ruby-2.2.2)
(default)
=> my_gemset
global
Run Code Online (Sandbox Code Playgroud)
然后我在终端打开新标签,然后运行rvm gemset list
,输出将是:
gemsets for ruby-2.2.1 (found in /home/yakout/.rvm/gems/ruby-2.2.1)
=> (default)
global
Run Code Online (Sandbox Code Playgroud)
我把以下行放在.profile
文件中:
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
Run Code Online (Sandbox Code Playgroud)
我将以下行放在.bash_profile
文件中:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell …
Run Code Online (Sandbox Code Playgroud) 我将RVM用作Ruby的版本管理并安装了Ruby 2.2.5。该捆绑软件已完全成功安装。但是,当我使用rails启动rails服务器时,它给了我“要求”:pg的库版本不兼容(LoadError)。
我尝试过多次重新安装rvm。清洗了宝石镶嵌,但问题仍然存在。
我一次又一次收到以下错误:
.rvm/gems/ruby-2.2.5/gems/pg-0.19.0/lib/pg.rb:4:in `require': incompatible library version - /home/user/.rvm/gems/ruby-2.2.5/gems/pg-0.19.0/lib/pg_ext.so (LoadError)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
正如标题所说,找不到什么的任何文档@something
中做rvm use 2.0.0@something
?
我在Apache服务器上为Ruby on Rails的phusion乘客收到以下错误消息:
It looks like Bundler could not find a gem. This is probably because your
application is being run under a different environment than it's supposed to.
Please check the following:
* Is this app supposed to be run as the `rvm_admin` user?
* Is this app being run on the correct Ruby interpreter? Below you will
see which Ruby interpreter Phusion Passenger attempted to use.
* Are you using RVM? Please check whether the correct gemset is …
Run Code Online (Sandbox Code Playgroud) 我刚刚安装了mavricks,Postgres.app,RVM,Git.
我创建了一个标准的新rails应用程序,一切正常.
但是,当我试图从github抓取一个项目时,无法运行bundle install.
d3 git:(master) bundle install
Fetching gem metadata from https://rubygems.org/.......
Fetching gem metadata from https://rubygems.org/..
Updating git://github.com/thomas-mcdonald/bootstrap-sass.git
fatal: Could not parse object '9c6c07f74ff515cf38380b014cfede14a4f0eae4'.
Git error: command `git reset --hard 9c6c07f74ff515cf38380b014cfede14a4f0eae4`
in directory
/Users/tyler/.rvm/gems/ruby-1.9.3-p448@d3/bundler/gems/bootstrap-sass-9c6c07f74ff5
has failed.
If this error persists you could try removing the cache directory
'/Users/tyler/.rvm/gems/ruby-1.9.3-p448@d3/cache/bundler/git/bootstrap-sass-33efd1d8ffb6176fdb805029a30f02a6edfbae2e'
Run Code Online (Sandbox Code Playgroud)
我试图删除该项目并再次克隆它.
我尝试删除gemset并从gemset中删除所有宝石.
我还尝试按照错误消息并删除缓存文件夹.
请帮助我真的需要回到这个项目的工作.
Update:
Run Code Online (Sandbox Code Playgroud)
我刚刚尝试了捆绑更新.
? d3 git:(master) bundle update
Updating git://github.com/thomas-mcdonald/bootstrap-sass.git
fatal: ambiguous argument '3': unknown revision or path not in the working tree.
Use '--' to separate …
Run Code Online (Sandbox Code Playgroud)