Einschränkungen beim Ausführen von Ruby / Rails unter Windows

81

In der Installationsdokumentation zu RoR wird erwähnt, dass die Ausführung von Ruby on Rails unter Windows viele Einschränkungen aufweist und in einigen Fällen ganze Bibliotheken nicht funktionieren.

Wie schlimm sind diese Einschränkungen, sollte ich immer standardmäßig Linux verwenden, um RoR zu codieren / auszuführen, und wird von Iron Ruby erwartet, dass sie diese Einschränkungen beheben, oder sind sie Kern des Betriebssystems selbst?

BEARBEITEN Vielen Dank für die Antwort zur Installation und Ausführung unter Linux, aber ich versuche wirklich, die Einschränkungen in der Funktionalität zu verstehen, auf die in der Installationsdokumentation verwiesen wird, und nicht funktionierende Bibliotheken. Ich versuche, einen Link zu dem Kommentar zu finden, aber das war es In einer Installation, auf die verwiesen wird, lesen Sie mich, wenn ich das MSI-Paket installiert habe, denke ich

BEARBEITEN Vielen Dank für die Verweise auf IronRuby in letzter Zeit. Es ist sicherlich ein Projekt, das man sich ansehen sollte. Da es sich offensichtlich um eine .NET-Sprache handelt, wird es von unschätzbarem Wert sein, wenn es die Versprechen einhält. Schließlich habe ich in meinem Fall jedoch nur die Kugel gebissen und einen Ubuntu-Server installiert.

<bias> Ich hätte es vor Jahren tun sollen </ bias>

Johnc
quelle
Es gibt keine Einschränkungen. Für jedes Problem gibt es Problemumgehungen oder Alternativen.
Chloe

Antworten:

101

Hier ist eine Übersicht über die aktuellen Probleme mit Rails unter Windows:

  • Ruby und Rails sind unter Windows langsamer als unter Unix-ähnlichen Betriebssystemen.
  • Einige Juwelen und Bibliotheken funktionieren unter Windows nicht.
  • Einige Unix-Ismen sind unter Windows nicht verfügbar ( Beispiele ).
  • Die Community besteht hauptsächlich aus Mac oder Linux ( Dies ist besonders schwierig zu bewältigen; niemand möchte auf einer Insel allein sein, wenn der Rest des Stammes feiert, Spaß hat und auf der anderen Insel gut miteinander auskommt. Community Es scheint wichtig zu sein. Es scheint, dass die meisten Windows-Entwickler, die mit Rails beginnen, schnell zu einem Mac oder Linux wechseln. Die kleine Community von Windows Ruby-Benutzern, die weiterhin bestehen, ist jedoch äußerst freundlich, engagiert und kenntnisreich - sagen Sie Hallo . )

Beachten Sie, dass viele der folgenden Ratschläge aufgrund der großartigen Bemühungen des RubyInstaller- Teams, Ruby unter Windows Stabilität, Kompatibilität und Leistung zu verleihen, inzwischen veraltet sind . Ich muss VirtualBox nicht mehr verwenden, was viel darüber aussagt, wie weit Ruby unter Windows gekommen ist.

Wenn Sie weitere technische Details wünschen, müssen Sie Folgendes lesen. ::

Das Auswahlzitat aus dem letzten lautet:

AkitaOnRails: Das offensichtlichste ist, dass jedes Gem mit C-Erweiterungen ohne geeignete Binärdateien für Windows fehlschlägt. Der Versuch, Shell-Befehle auszuführen, schlägt fehl und RubyInline ebenfalls. Was sonst?

Luis Lavena: Hehe, das ist nur die Spitze des Eisbergs

Trotzdem finde ich die Entwicklung mit Rails unter Windows nicht allzu schmerzhaft. Die Verwendung von Ruby ist größtenteils ein Vergnügen. Ich würde InstantRails vermeiden, da es, um ehrlich zu sein, genauso einfach ist, Ruby mit dem Ein-Klick-Installationsprogramm richtig zu installieren und dann a gem install rails. Wenn Sie Apache und MySQL benötigen, ist WAMP eine gute Wahl, obwohl auch diese nicht erforderlich sind, wenn Sie nur bei Mongrel und SQLite bleiben.

In letzter Zeit habe ich VirtualBox mit einer Instanz von Ubuntu Server ausgeführt, die den Bereitstellungsserver genau widerspiegelt. Ich ordne dem Ubuntu-Server ein Netzwerklaufwerk zu, bearbeite meinen Code und führe ihn direkt auf der VM aus. Es verwendet kaum Speicher (es verwendet derzeit ~ 43 MB; im Gegensatz zu Firefox, das ~ 230 MB verwendet) und Rails bietet tatsächlich eine bessere Leistung als die native Ausführung unter Windows. Außerdem können Sie relativ sicher mit Ihrem virtuellen Server experimentieren. Es ist ein wirklich schönes Setup, ich kann es nur empfehlen.

Zum Schluss noch ein paar Ruby / Rails-Blogs für Windows-Benutzer:

Charles Roper
quelle
2
Was für eine großartige, vollständige Antwort und was für eine deprimierende Realität ... aber ich denke, deshalb habe ich Stunden und Stunden damit verbracht, meine VirtualBox unter Windows zum Laufen zu bringen . Compileyouidontevenknowyou.blogspot.com/2008/12/… . Vielen Dank für Ihre Antwort: Ich werde meine VirtualBox verwenden.
Dan Rosenstark
4
Es ist nicht so deprimierend, wie es sich anhört. sicherlich nicht so deprimierend wie die Verwendung von Java oder .NET. Nur ein Scherz, nur ein Scherz. ;)
Charles Roper
1
Es ist cool, Charles, ich bin immer noch erstaunt, wie plattformabhängig wir immer noch sind ... nur noch 50 Jahre,
denke
1
Musste Windows neu installieren und war nicht daran interessiert, Rails wieder auf meiner Windows-Box zum Laufen zu bringen. Also VirtualBox installiert, einen virtuellen Ubuntu-Server erstellt, freigegebene Ordner eingerichtet, damit beide auf meinen Rails-Code zugreifen können, Ruby & Rails installiert, Portweiterleitung in VirtualBox eingerichtet, damit ich von Windows aus auf die Rails-App zugreifen kann
Guy C
1
Ich entwickle unter Windows, während Rails auf Ubunutu VM läuft. Ich "benutze" die VM nicht wirklich, da ich SSH-fähig bin und freigegebene Ordner verwende, um alles von Windows aus zu steuern. Hier ist mein gut dokumentiertes Setup: chetane.com/2012/09/11/…
Chetane
6

Ich fand es sehr einfach , eine Entwicklungsumgebung mit Instant Rails unter Windows zum Laufen zu bringen . Besonders wenn Netbeans oder Radrails als IDE verwendet werden.

Weniger als 10 Minuten Arbeit.

Was war für diejenigen, die Probleme hatten, das Problem?

RichH
quelle
5

Ich habe Rails seit ein paar Jahren auf einem Windows-PC entwickelt und hatte keine wirklichen Probleme bei der Installation, als ich anfing. Allerdings habe ich kürzlich meine Maschine neu erstellt und mich bemüht, das One-Click Ruby-Installationsprogramm und die neueste Version von Gems zum Laufen zu bringen. Das habe ich also versucht.

Option 1: Führen Sie eine virtuelle Linux-Maschine aus

Ich war wirklich beeindruckt von Charles Ropers Idee, Rails in einer virtuellen Linux-Maschine auszuführen, und dies ist der Weg, den ich ursprünglich eingeschlagen habe. Es lief alles ziemlich reibungslos und ich habe es unter budanters.blogspot.com dokumentiert . Ich hatte jedoch Probleme, vom Windows-Host aus auf den MySQL-Server (in Linux Virtual Machine) zuzugreifen.

Option 2: Verwenden Sie jRuby

Ich habe kürzlich die Windows-Version des NetBeans 6.5 Ruby-Bundles installiert. Ohne es zu merken, werden JRuby und die Rails-Juwelen installiert. Die IDE verfügt über eine Benutzeroberfläche zum Installieren von Gems, und ich habe jetzt meine alte Anwendung in meiner Entwicklungsumgebung wieder in Betrieb genommen.

Update November 2009

Ich benutze jetzt Netbeans 6.7 unter Windows und bin insgesamt sehr zufrieden damit. Die einzigen Nachteile sind, dass JRuby 1.2 installiert wird. Ich musste JRuby 1.3 manuell installieren, damit etwas funktioniert (ich kann mich nicht erinnern, was), und ich konnte die Bereitstellung weder mit Capistrano noch mit Vlad the Deployer zum Laufen bringen. Vlad verwendet Open4, das mit JRuby nicht funktioniert.

Update Mai 2010

Netbeans 6.8 wird mit JRuby 1.4 geliefert, sodass Sie nicht mehr mit der manuellen Installation von JRuby 1.3 herumspielen müssen. Außerdem scheint Open4 in JRuby 1.5 jetzt zu funktionieren, was bedeutet, dass Vlad möglicherweise anfängt zu arbeiten.

Guy C.
quelle
1
Ich wollte nur hinzufügen, dass eine gute Option zum Ausführen einer Ubuntu-VM die Verwendung von Vagrant ist. Sie entwickeln in Windows, und Ihre Dateien werden mit der Ubuntu-VM geteilt. Sie können dann Ihre VM "vagrant ssh" und dort Befehle ausführen, wie "Rails Server"
Carlosvini
5

Noch hat niemand Bitnami RubyStack erwähnt ? Ich benutze es seit Jahren zusammen mit RadRails. Beinhaltet Apache, MySQL / Postgre, phpmyadmin, git usw. Optional Ruby 1.9.2 / Rails 3.0b. Sie können auch die Ubuntu-Variante von RubyStack in einer VM ausführen, aber das habe ich noch nicht ausprobiert.

Chi
quelle
3

Persönlich fand ich es ein Kinderspiel, Ruby + Rails unter Windows zum Laufen zu bringen. Vom Download über das Surfen bis zu meiner ersten 'HelloWorld'-App habe ich 15 Minuten gebraucht. Ich habe mich nicht einmal mit den InstantRails beschäftigt.

In der Folge kann ich nicht sagen, dass ich auf eines der gemeldeten Geschwindigkeitsprobleme oder Probleme mit Gems unter Windows gestoßen bin.

Diese Jungs machen auch ein nettes Ruby-Entwickler-Add-On für Visual Studio:

http://www.sapphiresteel.com/

Kev
quelle
Wenn Sie Rails unter OS X oder unter * nix noch nie verwendet haben, werden Sie den Geschwindigkeitsunterschied wahrscheinlich nicht bemerken. Wenn Sie die beiden gegenüberstellen, wird der Unterschied offensichtlich.
Charles Roper
Vielleicht, aber der Punkt, den ich mache, ist, dass es nichts merklich Langsames gab, das mich denken ließ, "Hölle, das läuft wie ein Hund".
Kev
Wie haben Sie Ruby + Ruby auf Schienen unter Windows installiert?
2

Als ich das letzte Mal mit Rails unter Windows herumgespielt habe, habe ich Instant Rails verwendet und festgestellt, dass dies ein ziemlich schmerzhafter Prozess ist, abgesehen von dem Mangel an Updates für Instant Rails (was nach dem Aussehen der Website immer noch ein kleines Problem darstellt , da Instant Rails 2.0 ROR 2.0 verwendet, während die neueste Version 2.1 ist). Sie können sich auch die Antworten auf diese Frage ansehen , da darin eine Reihe anderer Möglichkeiten erwähnt werden, wie RoR unter Windows problemlos ausgeführt werden kann.

Paul Wicks
quelle
Es ist kaum schwierig, Rails 2.1 '
Gem
@ Paul Wicks Meinst du wirklich schmerzhaft? @RichH Ich erinnere mich anscheinend, dass ich auch ein "Gem Update-System" brauchte (ich habe alles getan, was das Beta-Buch Ruby on Rails von den pragmatischen Programmierern sagte), aber ich stimme zu, dass es nicht schwer ist, ein Upgrade durchzuführen
Steve Bosman,
1

Sie haben Windows-Optionen, um alles einzurichten und zu installieren, z. B. Instantrails :

Meine persönliche Erfahrung mit dem Versuch, Kollegen unter Windows zum Laufen zu bringen, ist jedoch, dass es eine ziemlich schmerzhafte Erfahrung ist. Sie sollten in der Lage sein, das meiste (wenn nicht alles) zum Laufen zu bringen, aber bereit sein, ein bisschen Zeit damit zu verbringen, herumzuspielen (und frustriert zu werden).

YMMV

Ich würde wahrscheinlich entweder Linux oder Mac für die Schienenentwicklung empfehlen (aber ich bin etwas voreingenommen gegenüber Windows, daher müssen Sie das möglicherweise mit einem Körnchen Salz nehmen).

Dave Smylie
quelle
1

Eine Option, wenn Sie unter Windows nicht weiterkommen, besteht darin, virtuelle Server unter Linux / BSD / what-have-you zu haben.

Es löst auch viele andere Probleme (so dass Sie problemlos mehrere Serverkonfigurationen ausprobieren können usw.).

Neall
quelle
1

Wenn Sie nicht von Windows wegkommen können, verwenden Sie VMware und führen Sie eine Form von Linux aus (Ubuntu ist beliebt). Ihre Nr. 1-Einschränkung sind kompilierte Edelsteine, die unter Windows nicht gut funktionieren.

Die meisten Tutorials gehen davon aus, dass Sie sich in einer Form von * nix befinden. Wenn Sie anfangen, außerhalb des Grundgerüsts zu brechen, spüren Sie den Schmerz. Bildmanipulation, Volltextsuche und sogar einige Datenbankadapter laufen entweder nur unter * nix oder sind schwierig einzurichten.

Die Mehrheit der Webhosts läuft auch unter Linux. Es ist gut, auf derselben Plattform wie Ihr Host zu entwickeln, um Probleme bei der Bereitstellung zu vermeiden.

MatthewFord
quelle
1

Im Allgemeinen ist die Rails-Leistung unter Windows ein Problem.

In Bezug auf Ihr Bereitstellungssetup können Sie entweder Rails in FCGI ausführen oder Mongrel verwenden (und entweder Apache oder IIS als Proxy einrichten). mod_rails ( http://www.modrails.com ) ist heute die beste Bereitstellungsoption für Rails, läuft jedoch nicht unter Windows.

Möglicherweise haben Sie mehr Glück, wenn Sie JRuby unter Windows verwenden, um Rails in einer beliebigen JVM-Umgebung (Tomcat, J2EE-Server usw.) auszuführen.

IronRuby ist noch nicht vorhanden, um Rails in einer Produktionsumgebung auszuführen, aber schließlich wird es darauf abzielen, Rails in einer beliebigen ASP.NET-Umgebung (IIS) auszuführen.

Jimmy Schementi
quelle
1

Sie könnten einfach Cygwin und seine Version von Ruby verwenden. Dadurch werden die Argumente über kompilierte Edelsteine, die unter Windows nicht funktionieren, beseitigt. Ich habe es geschafft, viele Edelsteine ​​auf diese Weise zu kompilieren.


quelle
1

Die größte Einschränkung beim Ausführen unter Windows besteht darin, dass viele Dinge sehr langsam sind.

Siehe diesen Thread . Für eine Diskussion.

Einfache Dinge wie "Skript / Konsole" und das Ausführen von Rake-Aufgaben dauern unter Windows fünfmal länger als unter Linux oder Mac.

Andere Einschränkungen sind:

  • Kein IE6 unter Vista.
  • BackgroundRB und viele andere c-basierte Juwelen funktionieren unter Windows nicht.
  • Kein Passagier
Sam Safran
quelle
1

Ich bin selbst kein Rails-Entwickler, aber ich dachte, das könnte von Interesse sein. Microsoft hat IronRuby 1.0 veröffentlicht, eine Version von Ruby, die auf der .NET-Plattform ausgeführt wird und anscheinend viermal schneller ausgeführt wird als die offizielle Rails-Implementierung unter Windows.

http://www.drdobbs.com/open-source/224600662

Offizielle Website http://ironruby.codeplex.com/

Doobi
quelle
1
Ironruby scheint seit über einem Jahr zu schlafen.
Reto
0

Für eine Beschleunigung können Sie mein Loader-Speeder-Obermaterial ausprobieren (damit die Schienen im Dösen schneller laufen): https://github.com/rdp/faster_require Überprüfen Sie auch den Spork, der im Dösen funktioniert

Rogerdpack
quelle
0

Alternative von RailsIntaller ist RailsFTW . Ruby & Rails sind aktueller.

Null
quelle