web-dev-qa-db-fra.com

L'installation de Rails échoue: ActiveSupport nécessite la version Ruby> = 2.2.2.

Je veux créer une nouvelle application Rails. J'utilise rvm avec Ruby-2.1.2. Je suis usint avec le @global gemset et compte utiliser bundler pour gérer les dépendances entre gemmes. Cependant, gem install Rails échoue:

$ 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.

Oui, il est vrai que j'utilise Ruby-2.1.2 et non pas Ruby-2.2.2, mais ne devrais-je toujours pas être autorisé à utiliser Ruby-2.1.2? Ne sommes-nous plus autorisés à utiliser Ruby-2.1.2?

Je pensais peut-être qu'ActiveSupport 5 était déjà installé dans le gemset @global et qu'ActiveSupport 5 nécessitait 2.2.2, mais en réalité il n'y a pas d'ActiveSupport 5 dans le gemset @global:

$ rvm gemdir
/Users/myuser/.rvm/gems/Ruby-2.1.2@global
$ cd /Users/myuser/.rvm/gems/Ruby-2.1.2@global
$ 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

Alors, comment puis-je éviter cette erreur en essayant d'utiliser Ruby-2.1.2?

16
Donato

Vous êtes autorisé à utiliser toute version Ruby de votre testament, mais vous ne pouvez utiliser aucune version Ruby avec la dernière version de Rails . Lorsque vous utilisez gem install Rails, vous obtenez la dernière version de Rails (Rails 5), ce qui n'est pas du tout compatible avec Ruby 2.1.2.

Si vous voulez vraiment utiliser Ruby 2.1.2, essayez ceci: gem install Rails -v 4.2.2.

En ce qui concerne l'utilisation de gemset, j'aime bien utiliser le global, car j'aime bien ce sport bien organisé. Je crée toujours un nouveau gemset pour chaque projet. Cela garantit que je peux avoir plusieurs projets, chacun avec une version Ruby and Rails, sans aucune incompatibilité entre les gemmes. Ceci est gemset comme espace de travail Ruby on Rails. Si vous les séparez par projet, vous réduirez les risques d'inconvénients liés à l'incompatibilité des pierres précieuses.

28
GPrimola
gem install Rails

La commande ci-dessus utilisera la dernière version de Rails, c'est-à-dire la version stable de Rails 5, qui nécessite> = Ruby 2.2.2.

Nous pouvons utiliser 2.1.2 avec la version inférieure de Rails. S'il vous plaît spécifier la version au moment de l'installation de Rails peut résoudre votre problème, Par exemple:

gem install Rails --version 4.2.4

ou

gem install Rails -v 4.2.4

Faites-moi savoir si cela fonctionne ... Merci.

6
Hasmukh Rathod

Je l'ai affronté avant CocoaPod et cela corrige par ce qui suit:

  1. Sudo gem installer activesupport -v 4.2.6 
  2. Sudo gem installer des cocoapods

https://github.com/CocoaPods/CocoaPods/issues/5603

1
Ahmed Lotfy

Utiliser RVM a fonctionné pour moi, j'ai suivi les instructions ici

curl -sSL https://rvm.io/mpapis.asc | gpg --import - &&\
curl -L get.rvm.io | bash -s stable &&\
source /etc/profile.d/rvm.sh && /usr/local/rvm/bin/rvm reload &&\
/usr/local/rvm/bin/rvm requirements run &&\
/usr/local/rvm/bin/rvm install 2.2.4 &&\
/usr/local/rvm/bin/rvm use 2.2.4 --default && Ruby --version

Mon environnement était un conteneur Docker avec CentOS installé

0
blueskin

Si vous utilisezrbenv

Veuillez vérifier que rbenv est correctement configuré à l'aide de ce script rbenv-doctor:

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
0
Naveen Segaran