Was bietet Bundler gegenüber RVM?

7

Ich bin nicht sicher, was die Unterschiede zwischen diesen beiden Werkzeugen sind. Es scheint eine große Überlappung zu geben, aber ich habe RVM verwendet und einige Probleme mit der Kompatibilität von Fails gesehen.

Was macht Bundler nicht mit RVM?

    
Genadinik 28.04.2011, 23:51
quelle

4 Antworten

11

Sie dienen verschiedenen Zwecken. RVM erstellt eine Sandbox, um Ihre Ruby-Installationen zu verwalten. Als Teil davon können Sie auch Edelsteine ​​definieren.

Bundler verwaltet deine Rubine nicht, es funktioniert mit dem aktuell ausgewählten Ruby.

Also, ich denke, Sie sollten RVM als Konfigurationsmanager für Ihre Entwicklungsumgebung betrachten und Bundler den Edelsteinmanager für eine Anwendung.

EDIT: Zusätzliche Gedanken -

Ob wir RVM verwenden oder nicht, normalerweise müssen wir alle Edelsteine, die wir für eine App verwenden wollen, manuell mit gem install blah für jedes Juwel, das wir verwenden wollen, laden.

Ich verwalte meine Edelsteine ​​über mehrere Rubine hinweg von Hand. Sobald sie installiert sind, kann ich mit RVM Edelsteinsets erstellen, aber RVM ruft nicht automatisch eine bestimmte Version eines Edelsteins ab, wenn es nicht installiert ist, oder holt es wieder, wenn es entfernt wurde. Da sich RVM mehr mit Ihrer Ruby-Umgebung beschäftigt, lässt es die Versionsverwaltung von Edelsteinen meist an gem und an uns.

Bundler kümmert sich andererseits um die fehlenden Teile in RVM. Wenn Sie das Gemfile für Bundler erstellen, ruft es die erforderlichen Edelsteine ​​und spezifischen Versionen ab, falls angegeben. So wird die Installation einer Ruby-App auf einem anderen Computer viel einfacher. Schieben Sie die Dateien auf den anderen Rechner, und führen Sie bundle install aus und es erledigt den Rest.

Es funktioniert gut mit Rails und ist eine vernünftige Lösung für meine Produktionsdateien. Es wird viel einfacher sein, als ich mit Perl-Distributionen umgehen muss, um Perl-Anwendungen auf denselben Hosts laufen zu lassen.

    
the Tin Man 29.04.2011, 00:14
quelle
3

RVM ist mehr wie eine Eindämmungseinheit. Während Bundler ist wie ein Manifest (Abhängigkeitsmanager) von dem, was die Anwendung in ihrem Lebenszyklus (unter anderem) benötigt oder verwendet.

Wenn Sie in Rails arbeiten, können Sie Bundler nicht verlassen. Aber ich benutze es die ganze Zeit, nur damit ich weiß, welche Edelsteine ​​ich brauche, und auch andere, die später in das Projekt kommen.

RVM hilft mir, meine Rubine zu trennen und dann weiter in Rubies / Projekte. So habe ich nicht eine Menge Edelsteine ​​und verschiedene Versionen in einem Stapel.

Nicht gerade die actionreichste Antwort, aber hoffe, es hilft ein wenig.

    
nowk 29.04.2011 00:14
quelle
3

Um Ihre Frage direkt zu beantworten ...

  

Was macht Bundler mit diesem RVM?   nicht?

Bunlder installiert alle Edelsteine, die von einem Projekt benötigt werden (das Bundler verwendet und alle benötigten Edelsteine ​​in einer Gemfile angegeben hat). RVM macht das nicht.

Mit dem Gemfile können Sie angeben, welche Edelsteingruppen (dh: Entwicklung, Testen) ...

Es gibt viele "kleine" Dinge wie diese, die Bundler macht, aber RVM nicht. Im Allgemeinen, wie die oben genannten guten Leute erklären, hat RVM andere Ziele als Bündler. RVMs zum Verwalten von Ruby-Laufzeiten während Bundler geht es darum, abhängige Edelsteine ​​für eine Anwendung zu verwalten.

    
thekindofme 29.04.2011 00:42
quelle
2

Bundler ist ein Tool zum Verwalten von Abhängigkeiten in Ihrem Code - also allen benötigten Edelsteinen. Es stellt sicher, dass alle Edelsteine, die Sie in Ihrer Gemdatei angeben, und alle Abhängigkeiten auf Ihrem System installiert sind. Es ist nicht wirklich wichtig, welche Version von Ruby Sie verwenden, es installiert nur die Edelsteine ​​für Sie, unabhängig davon, welcher Interpreter gerade verwendet wird.

RVM ist ein Tool zum Ausführen mehrerer Rubine und theoretisch auch mehrerer Edelsteinsets. Abhängigkeiten werden für Sie überhaupt nicht behandelt - es liegt immer noch an Ihnen, die Edelsteine ​​zu installieren.

Meine Erfahrung (und ich bin neu in RVM) ist, dass Sie sich nicht mit RVM beschäftigen wollen, es sei denn, Sie benötigen mehrere Rubine oder benötigen Edelsteine ​​für verschiedene Projekte, die irgendwie miteinander kollidieren. Selbst wenn Sie RVM verwenden, ist es sinnvoll, Bundler zum Verwalten von Gem-Abhängigkeiten zu verwenden, damit Ihre Gemfile in jedem von Ihnen verwendeten Code-Repository nachverfolgt werden kann.

    
muffinista 29.04.2011 00:13
quelle

Tags und Links