Ruby on Rails - gemsets in ruby on rails- ruby on rails tutorial - rails guides - rails tutorial - ruby rails
Gemsets
We are using RVM then using a gemset for each project is a good idea. A gemset is just a container we can use to keep gems separate from each other. Creating a gemset per project allows we to change gems (and gem versions) for one project without breaking all our other projects. Each project need only worry about its own gems. RVM provides (>= 0.1.8) a global gemset per ruby interpreter. Gems we install to the global gemset for a given ruby are available to all other gemsets we create in association with that ruby. This is a good way to allow all of our projects to share the same installed gem for a specific ruby interpreter installation.
Creating gemsets
Suppose you already have ruby-2.3.1 installed and you have selected it using this command:
rvm use ruby-2.3.1Clicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
To create gemset for this ruby version:
rvm gemset create new_gemsetClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
The new_gemset is the name of gemset. To see the list of available gemsets for a ruby version:
rvm gemset listClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to list the gems of all ruby versions:
rvm gemset list_allClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to use a gemset from the list (suppose new_gemset is the gemset I want to use):
rvm gemset use new_gemsetClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
you can also specify the ruby version with the gemset if you want to shift to some other ruby version:
rvm use ruby-2.1.1@new_gemsetClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to specify a default gemset for a particular ruby version:
rvm use 2.1.1@new_gemset --defaultClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to remove all the installed gems from a gemset you can empty it by:
rvm gemset empty new_gemsetClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to copy a gemset from one ruby to another you can do it by:
rvm gemset copy 2.1.1@rails4 2.1.2@rails4Clicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to delete a gemset:
rvm gemset delete new_gemsetClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to see the current gemset name:
rvm gemset nameClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
to install a gem in the global gemset:
rvm @global do gem installClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
Initializing Gemsets during Ruby Installs
When you install a new ruby, RVM not only creates two gemsets, it also uses a set of user-editable files to determine which gems to install. Working in /.rvm/gemsets, rvm searchs for global.gems and default.gems using a tree-hierachy based on the ruby string being installed. Using the example of ree-1.8.7-p2010.02, rvm will check the following files:
~/.rvm/gemsets/ree/1.8.7/p2010.02/global.gems
~/.rvm/gemsets/ree/1.8.7/p2010.02/default.gems
~/.rvm/gemsets/ree/1.8.7/global.gems
~/.rvm/gemsets/ree/1.8.7/default.gems
~/.rvm/gemsets/ree/global.gems
~/.rvm/gemsets/ree/default.gems
~/.rvm/gemsets/global.gems
~/.rvm/gemsets/default.gemsClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
For example, if you edited ~/.rvm/gemsets/global.gems by adding these two lines:
bundler
awesome_printClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
every time you install a new ruby, these two gems are installed into your global gemset. default.gems and global.gems files are usually overwritten during update of rvm.