2017-10-29 2 views
1

Ich verstehe nicht klar die Rolle von; RVM, RubyGems, Gemsets, Homebrew & Bundler, wie sie zusammen interagieren und wie ich sie verwenden sollte, um meine Umgebung, verschiedene Anwendungen, verschiedene Ruby-Versionen, verschiedene Rails-Versionen und alle zugehörigen Abhängigkeiten zu verwalten.Wie verlinkt man bereits heruntergeladenes Rails-Juwel mit einer neuen Version von Ruby?

Ich bin glücklich mit Ruby 2.3 und Rails 5.0.3 für neueste Apps und ältere Versionen für einige andere zu kodieren, aber durch Glück haben mehr als Planung keine Umweltprobleme bis heute gehabt. Ich bin gerade dabei, die Agile Web Entwicklung mit Rails 5 zu starten und ich versuche, die Umgebung so einzurichten, dass sie dem Tutorial entspricht. Dies führt dazu, dass ich RVM & Gemsets, RubyGems, Bundler, Homebrew besser verstehen muss, damit ich nun verschiedene Ruby- und Rails-Versionen auf meinem Rechner verwalten kann.

Der erste Schritt bestand darin, meine Ruby-Version zu aktualisieren, die 2.3.0 über rvm install ruby-2.4.2 erfolgreich installiert wurde.

Das führt mich zu der Erkenntnis, dass, obwohl verschiedene Rails-Versionen auf meinem Rechner mit älteren Ruby-Versionen "verlinkt" sind, ich keine Rails-Versionen mit meinem neuen Ruby v2.4.2 "verlinkt" habe.

Frage-Nr. 1) Sicherlich muss ich nicht wirklich eine weitere Kopie meiner gewünschten Rails-Version für dieses neue Ruby v2.4.2 herunterladen? Kann ich die zuvor installierte Rails-Version nicht irgendwie mit dieser neuen Ruby v2.4.2 verknüpfen?

Hier ist was rvm gemset list_all gibt;

gemsets for ruby-2.2.2 (found in /Users/jamesbkemp/.rvm/gems/ruby-2.2.2) 
=> (default) 
    global 

gemsets for ruby-2.3.0 (found in /Users/jamesbkemp/.rvm/gems/ruby-2.3.0) 
=> (default) 
    global 

gemsets for ruby-2.4.2 (found in /Users/jamesbkemp/.rvm/gems/ruby-2.4.2) 
=> (default) 
    global 

Frage-Nr. 2) Machen RVMs "Gemsets" dasselbe wie Bundler? dh verwende ich nur das eine oder das andere? In meinem Fall benutze ich Bundler, also bleibe lieber dabei, wenn es ein Fall von oder ist.

Frage-Nr. 3) Damit ich diese Umgebungsverwaltungswerkzeuge besser verstehen kann, kann mir jemand einen Überblick geben, was ich verwenden sollte, speziell was verwendet werden sollte, um zu aktualisieren, wo und wo die Grenzen liegen jedes Werkzeug.

Vielen Dank.

Antwort

0

Mein Workflow mit rvm arbeitet, ist als
1 folgen - ich installieren Sie eine Ruby-Version mit $ rvm install 2.3.1
2 - Wählen Sie die Ruby-Version $ rvm use 2.3.1
3 - Jetzt eine gemset für encapsulate gem Versionen in einer gemset vermeiden Versionen I erstellen Konflikte mit anderen Anwendungen, so $ rvm gemset create my_app
4 - Jetzt wähle ich den gemset $ rvm use [email protected]_app
5 - eine Version Rails installieren $ gem install rails -v 5.0.3
6 - erstellen Sie die App, $ rails new my_app
Jetzt haben Sie Ihre Schienen und Edelsteine ​​auf my_app gemset installiert.
7 - Schließlich, ich explizite in der App die Ruby-Version und Gemset verwendet, in der My_App-Root-Pfad, eine .ruby-Version-Datei mit 2.3.1 und eine .ruby-Gemset-Datei mit my_app, so, wenn ich zu my_app root eingeben Pfad, rvm weiß, dass es automatisch in [email protected]_app Gemset geändert werden muss und Sie müssen nicht $ rvm use [email protected]_app jedes Mal eingeben.

Beantworten Sie Ihre erste Frage, vielleicht haben Sie Schienen installiert, aber nur in einem Ruby Global Gemset-ein globaler Standard-Edelstein-Set, also wenn Sie eine neue Ruby-Version installieren, müssen Sie erneut die Rails Gem installieren. Ich empfehle, für jede App einen Edelsteinsatz zu erstellen, um die Probleme mit Edelsteinen zu reduzieren, wenn Sie verschiedene Apps haben.

Verwandte Themen