Chcę utworzyć nową aplikację Rails. Używam rvm z ruby-2.1.2. Jestem użytkownikiem gemsetu @global
i planuję użyć bundler do zarządzania zależnościami gem. Jednak gem install rails
zawiedzie:Instalacja Railsów kończy się niepowodzeniem: activesupport wymaga wersji Ruby> = 2.2.2
$ gem install rails
Fetching: concurrent-ruby-1.0.3.pre3.gem (100%)
Successfully installed concurrent-ruby-1.0.3.pre3
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: activesupport-5.0.0.gem (100%)
ERROR: Error installing rails:
activesupport requires Ruby version >= 2.2.2.
Tak, to prawda używam ruby-2.1.2 i nie Ruby 2.2.2, ale nie powinny nadal mieć możliwość korzystania Ruby 2.1.2? Czy nie wolno nam już używać Ruby-2.1.2?
Myślałem może, że ActiveSupport 5 został już zainstalowany w @global
gemset i że ActiveSupport 5 wymagane 2.2.2, ale w rzeczywistości nie ma ActiveSupport 5 w @global
gemset:
$ rvm gemdir
/Users/myuser/.rvm/gems/[email protected]
$ cd /Users/myuser/.rvm/gems/[email protected]
$ cd gems
$ ls
bundler-unload-1.0.2 gem-wrappers-1.2.4 rake-10.1.0 rvm-1.11.3.9 tzinfo-1.2.2
concurrent-ruby-1.0.3.pre3 i18n-0.7.0 rdoc-4.1.0 test-unit-2.1.2.0
executable-hooks-1.3.2 minitest-5.9.0 rubygems-bundler-1.4.4 thread_safe-0.3.5
jaki sposób można zapobiec ten błąd wystąpił podczas próby użycia ruby-2.1.2?
Twój pierwszy punkt odpowiada na moje pytanie. Jednak twoja druga uwaga, z którą muszę się nie zgodzić. Za każdym razem, gdy utworzysz nowy gemset, będziesz miał duplikaty klejnotów podobnych do każdego projektu. Celem programu bundler jest rozwiązanie problemów z zależnościami i użycie Gemfile do załadowania odpowiednich klejnotów, więc dziwactwa z niekompatybilnością gem nigdy się nie zdarzą. – Donato
@Donato, który nie wyszedł mi z głowy losowo. I nie było to moje życzenie. Możesz przeczytać specyfikację z najbardziej zaufanego źródła: https://rvm.io/gemsets/basics Z "Ostrzeżenia!" session: "RVM daje ci oddzielny katalog gemów dla każdej wersji Ruby i gemset. * Oznacza to, że klejnoty muszą być jawnie zainstalowane dla każdej wersji i gemset. RVM pomaga ci zarządzać tym procesem, zobacz stronę dokumentacji zestawu RVM." – GPrimola