wake-up-neo.net

Von rvm verwendete Rails-Version ändern

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

25
Pol0nium

Sie können eine neue Rails-App mit einer bestimmten Rails-Version erstellen

Rails _3.2.14_ new myApp
43
Santhosh

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:

  1. Ihre Ruby-Programme werden von Ruby 1.9.3 ausgeführt.

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

43
7stud

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...
19
mpapis

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

5
KKB

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'
...
0
Gamaliel

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.

0
jrichocean

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

0
user3342067