How do I turn off global gems for rvm? - ruby

I was following along a railscast, and was told that turning on global gems was good for a specific set of gems. But now when I try to install gems I get errors. So after using
rvm gemset use global
How do I revert this?
$ rvm gemdir
/Users/jeremysmith/.rvm/gems/ruby-1.9.2-p290#global

This works:
$ rvm gemset delete global
Read more about deleting gemsets.

Unfortunately I need my #global gemset. But I need it disabled for sometime.
So my way it is just rename it:
$ cd ~/.rvm/gems/
$ mv ruby-1.9.3-p327#global/ ruby-1.9.3-p327#global_

Related

How to check which gemset rbenv is using?

I use echo project-name > .rbenv-gemsets to create a new gemset for rbenv.
How do you check to see that it is using this gemset?
gem list is empty for the global gemset, so when I run it on the new gemset it doesn't tell me anything.
do a rbenv gemset active
If you've set up rbenv, and rbenv-gemset correctly, you will see the following output:
project-name global

rvm use not working

Just installed rvm. When I use: rvm use 1.9.3, I get:
Gemset '' does not exist, 'rvm gemset create ' first, or append '--create'.
When I do: rvm gemset create test, I get:
Can not create gemset before using a ruby. Try 'rvm use <some ruby>'.
Running:
rvm use 1.9.3 --install --create
will solve the problem, there had to be an error during installation which prevented creating default/global gemsets, did you notice anything?

how to make a gemset in RVM the default?

I'm trying to make a gemset the default whenever I start a new terminal in Mac OS X:
rvm use 1.9.3#rails3.2 --create --default
That seems to work, the rails3.2 gemset becomes the current gemset:
$ rvm gemset list
gemsets for ruby-1.9.3-p0 (found in /Users/me/.rvm/gems/ruby-1.9.3-p0)
global
=> rails3.2
$
But when I open up a new terminal, the rails3.2 gemset is no longer the current:
$ rvm gemset list
gemsets for ruby-1.9.3-p0 (found in /Users/me/.rvm/gems/ruby-1.9.3-p0)
global
rails3.2
$
What do I do?
Have you tried specifying rvm --default use after the gemset is created so passing:
rvm --default use ruby-1.9.3-p0#rails3.2
and then seeing if that sticks? Using create and default at the same time isn't something I've tried before, it's the only thing that strikes me as out of place.
Given the discussion below I'd offer this as a means for dealing with the problem. (Personally, I'd probably implode rvm and start over.) But, if you wanted to try to make a go of it with this install then I'd look at your .rvm folder, specifically in .rvm/environments/default which will contain all the environment variables exported for the default environment. Here you'll find rvm_gemset_name this may be set incorrectly and isn't updated for some reason (permissions?) or is set correctly in which case its some other environment issue. You could try manually setting it here in the file if its not correct.
You can use this command.
rvm use --default <ruby version>#<gemset name>
or
rvm --default use <ruby version>#<gemset name> or
rvm use <ruby version>#<gemset name> --default
Use following command to make a gemset as default.
rvm use <ruby version>#<gemset name> --default
eg.
rvm use 1.8.7-p370#mygemset --default
Interesting that nobody has mentioned rvm alias. Try your version-specific variation of this, works for me:
$ rvm alias create default ruby-2.3.0#rails_4_2_6
# me logs out, fetches another coffee
# me logs in
$ rvm list
rvm rubies
ruby-2.2.4 [ x86_64 ]
=* ruby-2.3.0 [ x86_64 ]
$ rvm gemset list
gemsets for ruby-2.3.0 (found in /home/aclarke/.rvm/gems/ruby-2.3.0)
(default)
global
=> rails_4_2_6
rubyracer related issue might as well come with libv8.
To get around this issue:
Step 1: Run the following command to uninstall any existing installation of libv8:
gem uninstall libv8
Install rubyracer by running the following command:
gem install therubyracer -v 0.12.2
Install libv8 by running the following command:
gem install libv8 -v 3.16.14.15 -- --with-system-v8
Try bundle install now:
bundle install
You can use this command
$ rvm use rubyversion#gemsetname --create --ruby-version
For example :
ruby version = ruby-2.1.2
gemset name = gem320
It would be
$ rvm use ruby-2.1.2#gem320 --create --ruby-version.
Even if you open other tab also, it will preserve the settings.

RVM: How to use gems from a different ruby?

I have been using RVM to manage my Rubies and gems.
When I first installed RVM, the Ruby version that I installed was 1.9.2-p0. I recently installed Ruby 1.9.2-p136, which created a new Ruby in the RVM.
My problem is I want to use the latest version of Ruby but all of the gems I installed were installed under the 1.9.2-p0 directory, because RVM keeps gems completely separate between Rubies, and I want to be able to use those gems with my new version, p-136 without having to reinstall them all.
Is there a way I can get my gems from my p-0 Ruby to work with my p-136 Ruby?
You can use copy in rvm
$ rvm gemset copy 1.9.2-p0 1.9.2-p136
See more about the rvm copy command
This is the fastest way to get your gems moved over and it wont reinstall everything, just copy them over. But once you've got that squared away I'd do as the others are suggesting and start using gemsets. It's a nice way to group the gems you use in your projects.
This might help: http://rvm.io/gemsets/initial/
Basically, if you setup a global gemset configuration, those gems will be used for every ruby version you install.
You need to check out gemsets and export your current gems.
rvm gemset export
Read the gemset docs for more information.
You can copy a gemset from one ruby to another.
rvm copy
$ rvm gemset copy 2.1.1#rails4 2.1.2#rails4

RVM: Uninstalling all gems of a gemset

I have global gems and various gemsets. I want to remove all gems of a gemset. Is there a way do to this, besides uninstalling the gemset?
Use the gemset empty command:
rvm gemset empty mygems
This command removes all the ruby gems installed locally in 1-step
Works well in Ubuntu 10.10
gem list | cut -d" " -f1 | xargs gem uninstall -aIx
PS - removes all local gems. Use sudo accordingly.
you can also use rvm --force gemset empty
rvm gemset empty <gemset name>
This will remove all gems from your mentioned gemset.
rvm gemset empty <gemset> works, but only if you specify a gemset name.
If you want to empty the default gemset, you need to pass an empty string for the gemset name.
rvm gemset empty mygems ""
Isn't removing all the gems out of a gemset essentially the same operation as deleting a gemset and then adding it back? Why not just do this:
$ rvm gemset mygemset
$ rvm gemset delete mygemset
$ rvm gemset create mygemset
This is the safest way to uninstalling all gems of a gemset
Step 1
If you gem version is less then 2.1.
gem update --system
gem --version
Step 2
gem uninstall --all
references

Resources