Please provide documentation how to use newly created gemset.
bigos opened this issue · 9 comments
I can't figure out how to make terminal use my new gemset. Your documentation does not provide the expected information.
what sort of expected information are you looking for? can you document this?
How do I create a gemset for my ruby version and then make it current for subsequent terminal commands?
I want to install rails in home folder without the permission error saying that it wants to install gems in the root folder?
why does
$ rbenv gemset active
new_gemset global
give two gemsets? How do I make only one gemset active?
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset create 3.2.2 newest
created newest for 3.2.2
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset active
newest global
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset list
3.2.2:
newest
jacek@jacek-ixtreme-M5850:~/Temp$ cd ..
jacek@jacek-ixtreme-M5850:~$ cd ./Temp
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset active
newest global
jacek@jacek-ixtreme-M5850:~/Temp$ gem install rails
ERROR: While executing gem ... (Errno::EACCES)
Permission denied @ dir_s_mkdir - /newest
jacek@jacek-ixtreme-M5850:~/Temp$ RBENV_GEMSETS="newest" gem install rails
ERROR: While executing gem ... (Errno::EACCES)
Permission denied @ dir_s_mkdir - /newest
jacek@jacek-ixtreme-M5850:~/Temp$ echo "trying again"
trying again
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv local 3.2.2
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv versions
system
3.0.2
3.1.4
* 3.2.2 (set by /home/jacek/Temp/.ruby-version)
jacek@jacek-ixtreme-M5850:~/Temp$ cd ~
jacek@jacek-ixtreme-M5850:~$ rbenv gemset list
3.2.2:
newest
jacek@jacek-ixtreme-M5850:~$ rbenv gemset delete 3.2.2 newest
deleted newest from 3.2.2
jacek@jacek-ixtreme-M5850:~$ rbenv gemset list
jacek@jacek-ixtreme-M5850:~$ cd ~
jacek@jacek-ixtreme-M5850:~$ rm -rv ~/Temp
removed '/home/jacek/Temp/.ruby-version'
removed '/home/jacek/Temp/.ruby-gemset'
removed directory '/home/jacek/Temp'
jacek@jacek-ixtreme-M5850:~$ mkdir ~/Temp
jacek@jacek-ixtreme-M5850:~$ cd ~/Temp
jacek@jacek-ixtreme-M5850:~/Temp$ echo trying_again > .ruby-gemset
jacek@jacek-ixtreme-M5850:~/Temp$ echo "3.2.2" > .ruby-version
jacek@jacek-ixtreme-M5850:~/Temp$ cd ~
jacek@jacek-ixtreme-M5850:~$ cd ~/Temp
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset active
trying_again global
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset list
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset create 3.2.2 trying_again
created trying_again for 3.2.2
jacek@jacek-ixtreme-M5850:~/Temp$ cd ~/Temp
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv gemset active
trying_again global
jacek@jacek-ixtreme-M5850:~/Temp$ rbenv versions
system
3.0.2
3.1.4
* 3.2.2 (set by /home/jacek/Temp/.ruby-version)
jacek@jacek-ixtreme-M5850:~/Temp$ gem install rails
Fetching railties-7.0.7.2.gem
Fetching rack-2.2.8.gem
Can this be converted into documentation?
I guess part of the surprise was rbenv versions having the * next to system.
Do I need to do that if I want to use the newly created gem in another folder?
jacek@jacek-ixtreme-M5850:~$ rbenv local 3.2.2
jacek@jacek-ixtreme-M5850:~$ RBENV_GEMSETS="trying_again" gem install rails
Now https://github.com/jf/rbenv-gemset#usage-the-advanced-neckbeard-version makes more sense, but I would write it differently.
If I have time I may write how I would progress from a gemset creation to creation of a rails project.
Now https://github.com/jf/rbenv-gemset#usage-the-advanced-neckbeard-version makes more sense, but I would write it differently.
that's great... did you not read the documentation?
I did not understand the documentation. Possibly because rbenv local confusion. I used to use rvm and there you had command to use required ruby and gemset.
My desired workflow is: In projects folder, create project1 folder and create .ruby-verion and .ruby-gemset files and create the gemset and install gem rails. Then go from project1 folder to parent projects and run rails new ./project1 with the expected ruby and gemset.
To achieve that I need:
rbenv local 3.2.2
RBENV_GEMSETS="project1" gem install rails
The problem is your documentation does not mention rbenv local. In parent folder rbenv versions maybnot be what you expect.
I meant workflow like this. Now I understand the process, so I can think of a script to make it easier.
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ rbenv gemset create 3.1.3 newer
created newer for 3.1.3
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ rbenv gemset active
no active gemsets
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ rbenv local 3.1.3
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ RUBY_GEMSETS="newer" gem install rails
Fetching minitest-5.20.0.gem
Fetching tzinfo-2.0.6.gem
Parsing documentation for rails-7.0.7.2
Installing ri documentation for rails-7.0.7.2
36 gems installed
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ RUBY_GEMSETS="newer" rails new ./newer
create
create README.md
create Rakefile
create .ruby-version
Pin all controllers
Appending: pin_all_from "app/javascript/controllers", under: "controllers"
append config/importmap.rb
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ cd ./newer/
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ rbenv gemset active
no active gemsets
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ ruby --version
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ echo newer > .ruby-gemset
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ rbenv gemset active
newer global
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ cd ..
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp$ cd ./newer/
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ rbenv versions
system
* 3.1.3 (set by /tmp/newer/.ruby-version)
3.2.1
3.2.2
jacek@jacek-Lenovo-YOGA-3-Pro-1370:/tmp/newer$ rbenv gemset active
newer global