Hier sind meine lokalen Juwelen:
$ gem list
*** LOCAL GEMS ***
actionmailer (4.0.0, 3.2.14)
actionpack (4.0.0, 3.2.14)
activemodel (4.0.0, 3.2.14)
activerecord (4.0.0, 3.2.14)
activerecord-deprecated_finders (1.0.3)
activeresource (3.2.14)
activesupport (4.0.0, 3.2.14)
arel (4.0.0, 3.0.2)
atomic (1.1.13)
builder (3.1.4, 3.0.4)
bundler (1.3.5)
bundler-unload (1.0.1)
erubis (2.7.0)
hike (1.2.3)
i18n (0.6.5)
journey (1.0.4)
json (1.8.0)
mail (2.5.4)
mime-types (1.24)
minitest (4.7.5)
multi_json (1.7.9)
polyglot (0.3.3)
rack (1.5.2, 1.4.5)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
Rails (3.2.14)
railties (4.0.0, 3.2.14)
rake (10.1.0)
rdoc (3.12.2)
rubygems-bundler (1.2.2)
rubygems-update (2.0.7)
rvm (1.11.3.8)
sprockets (2.10.0, 2.2.2)
sprockets-Rails (2.0.0)
thor (0.18.1)
thread_safe (0.1.2)
tilt (1.4.1)
treetop (1.4.15)
tzinfo (0.3.37)
Aber wenn ich Rails -v
eingebe, bekomme ich Folgendes:
$ Rails -v
Rails 4.0.0
$ which Rails
/Users/polonium/.rvm/rubies/Ruby-2.0.0-p247/bin/Rails
Wie kann ich rvm angeben, um Rails Version 3.2.14 zu verwenden?
Danke im Voraus
Sie können eine neue Rails-App mit einer bestimmten Rails-Version erstellen
Rails _3.2.14_ new myApp
Wie kann ich rvm angeben, um Rails Version 3.2.14 zu verwenden?
rvm hat nichts mit schienen zu tun. rvm wird zur Verwaltung mehrerer Ruby-Installationen verwendet. Jede Ihrer Ruby-Installationen kann mit mehreren Gemsets verknüpft werden. Angenommen, Sie haben Ruby 1.9.3 installiert und zwei Gemsets für Ruby 1.9.3 erstellt: gemsetA und gemsetB. Wenn Sie rvm anweisen, Ruby 1.9.3 mit gemsetA zu verwenden, bedeutet dies:
Ihre Ruby-Programme werden von Ruby 1.9.3 ausgeführt.
Für Ihre Ruby-Programme kann ein beliebiger Edelstein in gemsetA erforderlich sein (wodurch Ihr Programm dann die in gemsetA definierten Methoden (oder Klassen) verwenden kann), aber alle Edelsteine in gemsetB können von Ihrem Ruby-Programm nicht gesehen werden.
Hier ist ein konkretes Beispiel:
~$ rvm list
rvm rubies
Ruby-1.8.7-p370 [ i686 ]
* Ruby-1.9.3-p194 [ x86_64 ]
=> Ruby-2.0.0-p0 [ x86_64 ]
Ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~$ rvm use 1.9.3-p194
Using /Users/7stud/.rvm/gems/Ruby-1.9.3-p194
.
~$ rvm gemset list (This lists only the gemsets for the current Ruby version)
gemsets for Ruby-1.9.3-p194 (found in /Users/7stud/.rvm/gems/Ruby-1.9.3-p194)
=> (default)
global
programming
Rails3tutorial
Rails4
~$ rvm gemset use programming
Using Ruby-1.9.3-p194 with gemset programming
Nachdem ich das getan habe, werden meine Ruby-Programme von Ruby 1.9.3 ausgeführt, und alle Juwelen im Programmier-Set können in meinem Ruby-Programm benötigt werden. Sie können eine Verknüpfung verwenden, um beide Befehle in einem Schritt auszuführen:
rvm use Ruby [email protected]ramming
Kombinieren Sie einfach die Ruby-Version und das Gemset mit einem '@'.
Aber wenn ich Rails -v eingebe, bekomme ich Folgendes:
$ Rails -v Rails 4.0.0
Dies liegt daran, dass das aktuelle Gemset das Juwel für Rails 4.0.0 enthält. Wenn Sie $ Rails -v
output Rails 3.2.14
sehen möchten, müssen Sie rvm anweisen, zu einem Gemset umzuschalten, das das Gem von Rails 3.2.14 enthält.
Sie können jedoch festlegen, dass rvm automatisch zur richtigen Rails-Version und zum entsprechenden Gemset für Ihr Rails-Projekt wechselt. Fügen Sie in Ihrer Gemfile einen Kommentar nach der Ruby-Version hinzu:
Ruby '2.0.0'
#Ruby-gemset=railstutorial4_gems
Wenn Sie dann in das Verzeichnis wechseln, in dem sich Ihr Rails-Projekt befindet, wechselt rvm automatisch den aktuellen Ruby auf Ruby 2.0.0 und das aktuelle gemset auf railstutorial4_gems. Wenn Sie Verzeichnisse aus Ihrer Rails-App heraus ändern, ändert rvm den aktuellen Ruby und das aktuelle Gemset wieder in den ursprünglichen Zustand.
Ich bin nur ein Anfänger von Rails, aber hier sind die Schritte, die ich zum Erstellen eines neuen Projekts verwende, die direkt aus dem Railstutorial-Buch stammen ( http://Ruby.railstutorial.org/Ruby-on-Rails-tutorial- Buch )
1)
.../Rails_projects$ rvm use <Ruby version here>@<new gemset name here> --create
e.g.
.../Rails_projects$ rvm use [email protected]_gemset --create
2)
.../Rails_projects$ gem install Rails --version 3.2.14
Da das aktuelle Gemset das Myapp-Gemset ist, wird mit diesem Befehl das Rails 3.2.14-Gem im myapp-Gemset installiert.
3)
.../Rails_projects$ Rails new myapp
.../Rails_projects$ cd myapp
Das aktuelle Gemset ist immer noch myapp_gemset.
4)
.../Rails_projects/myapp$ Rails -v
Rails 3.2.14
Für den Fall, dass sich jemand gefragt hat, um was es sich bei den folgenden zwei Edelsteinen handelt:
gemsets for Ruby-1.9.3-p194 (found in /Users/7stud/.rvm/gems/Ruby-1.9.3-p194)
=> (default)
global
rvm erstellt diese beiden Gemsets für jede Ruby-Version, die Sie installieren. Wenn Sie nach der Installation einer Ruby-Version kein Gemset für diese Ruby-Version selbst erstellen und einen Edelstein installieren, wird der Edelstein in das (Standard-) Gemset übernommen. Und wenn Sie möchten, dass alle Ihre Edelsteine einen bestimmten Edelstein enthalten, können Sie zum globalen Edelstein wechseln und den Edelstein dort installieren.
Update: -------
Um die Kompatibilität mit anderen Ruby-Versionsmanagern aufrechtzuerhalten, können Sie die Ruby-Version und den Gemset-Namen für Ihr Projekt in einer anderen Datei als in der Gemfile-Datei angeben:
$ cd ~/Rails_projects/myapp
~/Rails_projects/myapp$ echo 2.0.0 > .Ruby-version
~/Rails_projects/myapp$ echo myapp_gemset > .Ruby-gemset
Sie erhalten immer noch die gleiche automatische Ruby-Version und das gleiche Gemset-Umschalten, wenn Sie cd
in Ihr Projektverzeichnis aufnehmen. Siehe die Rvm-Dokumente hier .
der Pfad, den Sie gefunden haben /Users/polonium/.rvm/rubies/Ruby-2.0.0-p247/bin/Rails
ist nicht der richtige Pfad, den Sie bei der Standardinstallation von rvm bei ordnungsgemäßer Verwendung von rvm finden würden. Sie sollten Folgendes sehen: /Users/polonium/.rvm/gems/Ruby-2.0.0-p247/bin/Rails
um es richtig zum Laufen zu bringen, versuche diesen Fluss:
rvm use 2.0.0
rvm gemset empty
rvm use @Rails3 --create
gem install Rails -v "~>3.2"
rvm use @Rails4 --create
gem install Rails -v "~>4"
auf diese Weise können Sie jetzt zwischen diesen beiden Rails-Installationen wechseln:
rvm use [email protected]
Rails -v # Rails 3.2...
rvm use [email protected]
Rails -v # Rails 4.0...
du solltest folgendes tun: gem install 'Rails' -v '3.2.13'
Sie sollten ein sauberes Gemset verwenden. Wenn Sie rvm verwenden, können Sie Folgendes versuchen:
rvm gemset erstellen rvm gemset verwenden
Jetzt hast du ein sauberes Gemset, es ist Zeit, Rails zu installieren,
gem installieren Rails -v '3.2.13'
und dann eine Rails-App erstellen,
Rails neuer app_name
Sie können die gewünschte Version von Rails mit folgendem Befehl hinzufügen:
$ gem install Rails --version 3.2.14
Und dann erstelle eine App mit dieser Version:
$ Rails _3.2.14_ new myapp
Abschließend können Sie den Inhalt der "Gemfile" überprüfen, um Folgendes zu bestätigen:
...
gem 'Rails', '3.2.14'
...
Stellen Sie sicher, dass Sie das globale Gemset überprüfen, indem Sie zunächst sicherstellen, dass Sie sich in der Ruby-Version befinden, die Sie verwenden möchten
$Ruby -v
Wechseln Sie dann zum globalen Gemset (das globale Gemset gilt für alle Gemsets. Stellen Sie sicher, dass Sie es sauber und universell halten ... oder global, daher der Name.)
$rvm gemset use global
Überprüfen Sie anschließend die Edelsteinliste auf Edelsteine, die sich auf sie auswirken können, wie auf das "Railties" -Edel, das Harsha durch das Tippen erwähnt hat
$gem list
Manchmal kann das globale Gemset mit einem zufälligen Edelstein gefüllt werden, der alle anderen Edelsteine beeinflusst. Wenn Sie einen falsch platzierten Edelstein finden, können Sie ihn einfach mit deinstallieren
$gem uninstall examplegem
oder für eine bestimmte Version dieses Edelsteins in -v mit der Version in Anführungszeichen übergeben
$gem uninstall examplegem -v"3.2.1"
Lesen Sie auch den Kommentar von 7stud zum Erstellen und Verwenden von RVM zum Wechseln zwischen verschiedenen Gemsets.
"railties (4.0.0)" ist das Problem, das Sie haben. Ich denke, es wurde versehentlich installiert?
Deinstallieren Sie diese Version mit, deinstallieren Sie das System, und wählen Sie dann die Option 4.0.0 aus.
Jetzt gibt der Befehl "Rails -v" Ihre erwartete Version zurück, die "3.2.14" ist.