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?
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.
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.
Je l'ai affronté avant CocoaPod et cela corrige par ce qui suit:
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é
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