webentwicklung-frage-antwort-db.com.de

Rails-Installation schlägt fehl: Für Activesupport ist Ruby-Version> = 2.2.2 erforderlich

Ich möchte eine neue Rails-App erstellen. Ich verwende rvm mit Ruby-2.1.2. Ich bin das @global gemset und plane, Bundler zur Verwaltung von Gem-Abhängigkeiten zu verwenden. gem install Rails schlägt jedoch fehl:

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

Ja, es ist wahr, ich verwende Ruby-2.1.2 und nicht Ruby-2.2.2, aber sollte ich trotzdem Ruby-2.1.2 verwenden dürfen? Dürfen wir Ruby-2.1.2 nicht mehr verwenden?

Ich dachte vielleicht, dass ActiveSupport 5 bereits im @global Gemset installiert war und dass ActiveSupport 5 2.2.2 benötigte, aber tatsächlich ist ActiveSupport 5 nicht im @global Gemset enthalten:

$ 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

Wie kann ich also verhindern, dass dieser Fehler bei der Verwendung von Ruby-2.1.2 auftritt?

16
Donato

Sie dürfen eine beliebige Ruby-Version Ihres Testaments verwenden, jedoch können Sie keine Ruby-Version mit der neuesten Version von Rails verwenden. Wenn Sie gem install Rails verwenden, erhalten Sie die neueste Version von Rails (Rails 5). was überhaupt nicht mit Ruby 2.1.2 kompatibel ist.

Wenn Sie Ruby 2.1.2 wirklich verwenden möchten, versuchen Sie Folgendes: gem install Rails -v 4.2.2.

Da der Einsatz von Gemset sehr gut organisiert ist, verwende ich nie das Globale. Ich erstelle für jedes Projekt ein neues Gemset. Dies garantiert, dass ich viele Projekte haben kann, jedes mit einer Ruby- und Rails-Version, ohne eine Inkompatibilität zwischen den Edelsteinen zu erhalten. Dies von Gemset als Ihr Ruby on Rails-Arbeitsbereich. Wenn Sie sie nach Projekt trennen, minimieren Sie die Wahrscheinlichkeit von Unregelmäßigkeiten bei der Inkompatibilität von Edelsteinen.

28
GPrimola
gem install Rails

Der obige Befehl wird die neueste Version von Rails verwenden, d. H. Stabile Version von Rails 5, die> = Ruby 2.2.2 erfordert.

Wir können 2.1.2 mit einer niedrigeren Version von Rails verwenden. Bitte geben Sie die Version zum Zeitpunkt der Installation von Rails an, um Ihr Problem zu lösen. Beispiel:

gem install Rails --version 4.2.4

oder

gem install Rails -v 4.2.4

Lass es mich wissen, wenn es funktioniert.

6
Hasmukh Rathod

Ich sah es vor CocoaPod und es fixiert durch Folgendes:

  1. Sudo gem install activesupport -v 4.2.6 
  2. Sudo Edelstein installieren Kokosapods

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

1
Ahmed Lotfy

Mit RVM funktionierte für mich, ich habe die Anweisungen befolgt hier

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

Meine Umgebung war ein Docker-Container mit installiertem CentOS

0
blueskin

Wenn Sierbenvverwenden

Bitte vergewissern Sie sich, dass rbenv mit diesem Skript von rbenv-doctor richtig eingerichtet ist:

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