Warum ist es so schwierig, Ruby on Rails unter Ubuntu einzurichten?

12

Ich habe heute Morgen ein paar Stunden damit verbracht, Rails auf einer neuen Ubuntu-Instanz zu installieren, und habe festgestellt, dass der Prozess sehr viel komplizierter ist als unter Windows. Unter Windows gehe ich zu rubyinstaller.org, starte die ausführbare Datei (ich war speziell an 1.9.2-p180 interessiert) und passe dann den Systempfad entsprechend an. Rails erfordert auch keine zusätzlichen Schritte, ich kann ein Git-Repository klonen und loslegen.

Unter Ubuntu musste ich die RVM installieren (was ich auch für Windows hätte tun können), die aufgelisteten Voraussetzungen installieren und apt-get fehlschlagen lassen, da einige dieser Pakete nicht mehr verfügbar waren. Ich lief dann schließlich rvm installnur, um herauszufinden, dass make nicht funktionieren würde, also musste ich eine Reihe von Abhängigkeiten von openssl aus einer der .c-Dateien manuell auskommentieren und neu erstellen, dann wurde es endlich installiert. Rails war noch lange nicht fertig, also musste ich eine Reihe weiterer Voraussetzungen installieren, einige zusätzliche Dateien in der Ruby-Quelle bearbeiten und ausführen, und dann konnte ich endlich rails consoleanfangen.

Ist das ganz normal? Sollte ich damit rechnen, dass alles auf Ubuntu ein paar Stunden länger dauert, wenn ich Rails-Anwendungen entwickeln werde? Ich musste mindestens 3-4 Anleitungen für 11.04 und mindestens 5 verschiedene Stapelüberlaufpfosten zu Rate ziehen, um die Sache zum Laufen zu bringen, es scheint mir eine sehr traumatische Benutzererfahrung zu sein.

Alexandr Kurilin
quelle
1
Welchem ​​Führer folgst du?
Jorge Castro
Es ist immer ein Ärger, aber es ist nicht so schlimm - verwenden Sie RVM. IMHO-Schienen sollten von apt entfernt werden, da dies nur Versionsschmerzen verursacht. (Oder hat das Potenzial zu.)
Thufir
Im Vergleich dazu ist die Installation von Meteor.js ein Kinderspiel .
Dan Dascalescu

Antworten:

4

Bezüglich der Gründe, warum Ihre Erfahrung schwierig war, bin ich mir nicht sicher, ob dies beantwortet werden kann, ohne mehr darüber zu wissen, was Sie genau getan haben. In Bezug auf Ihre Frage "ist das ziemlich normal?" Ich bin nicht sicher, ob es definitiv beantwortet werden kann, aber ich kann meine Erfahrungen in der Hoffnung weitergeben, dass es hilfreich ist!

Ich habe über zwei Jahre mit Ubuntu auf Rails entwickelt und kann sagen, dass ich mich in keinem der erforderlichen Pakete mit kaputten Paketen oder Touch- / Rebuild-Code befassen musste. Ich habe mich mit jedem Release komplett neu installiert und die Erfahrung gemacht, dass es mit jedem Release einfacher ist, meine Rails-Umgebung einzurichten (wahrscheinlich aufgrund zunehmender Erfahrung). Im Allgemeinen würde ich nach einer Neuinstallation von Ubuntu sagen, dass ich weniger als eine Stunde (manchmal viel weniger) brauche, um meine Umgebung auf den Stand vor der Neuinstallation zu bringen.

Vor ein paar Tagen habe ich mich an das verlinkte Tutorial gehalten, um meine Rails-Entwicklungsumgebung am 11.10 komplett neu einzurichten. Früher habe ich Paketmanager-Ruby-Pakete verwendet, die einwandfrei funktionierten, bis ich mehrere Versionen von Ruby ausführen musste. Beachten Sie, dass das Verlassen auf die Package Manager-Pakete für die Ruby-Entwicklung im Allgemeinen nicht als die beste Methode zum Entwickeln von Ruby unter Ubuntu angesehen wird (Details finden Sie im verlinkten Artikel), aber in der Vergangenheit hat es für mich immer gut funktioniert (wenn Sie nur eine Version von benötigen) Ruby, Rails und Gems).

Ich denke, eine Sache, die Linux von anderen Betriebssystemen unterscheidet, ist die Fähigkeit, auf viele verschiedene Arten etwas zu tun, während es in einigen anderen Betriebssystemen möglicherweise nur auf eine bestimmte Weise möglich ist. Dies trifft auf die Einrichtung Ihrer Entwicklungsumgebung zu (es gibt mehrere Möglichkeiten), und es ist leicht zu erkennen, dass dies zu Verwirrung und der Notwendigkeit führt, verschiedene Handbücher zu Rate zu ziehen. Aus meiner begrenzten Erfahrung heraus war die Verwendung des RVM-Bash-Installationsskripts im verlinkten Artikel am einfachsten (das heißt, wenn RVM für Sie keinen Nutzen bringt, gibt es möglicherweise einfachere Möglichkeiten, wie z. B. den Paketmanager). .

Wenn Sie mit der Entwicklung in Windows vertraut sind und Ubuntu zum ersten Mal für die Entwicklung einrichten, ist es meines Erachtens vernünftig, damit zu rechnen, dass es einfach länger dauert, da viele Dinge länger dauern, wenn wir sie zum ersten Mal erlernen. Wenn es "traumatisch" endet, dann hoffe ich, dass Sie die Erfahrung und das Wissen finden können, die Sie gewonnen haben :)

http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/

Sheldon
quelle
Vielen Dank für diesen Leitfaden, ich werde das nächste Mal darauf verweisen. Ich muss darauf hinweisen, dass es etwas albern ist, weil es Sie zuerst davor warnt, niemals apt-get zu verwenden, und dann ein Dutzend oder so rubinrote Abhängigkeiten von ihm herunterlädt: | In jedem Fall ist es möglich, dass ein Teil meiner Schmerzen auf die Verwendung von 1.9.2-p180 zurückzuführen ist. Zukünftige Versionen enthielten Ubuntu-spezifische Fixes, die für diese Version manuell behoben werden mussten. Insgesamt eine großartige Antwort, die mir mehr Selbstvertrauen gibt, das Betriebssystem für die zukünftige Arbeit beizubehalten.
Alexandr Kurilin
Hier ist das Problem, dem ich unter anderem begegnet bin: digitaldisorder.posterous.com/ruby-rvm-and-debian-sid-problems
Alexandr Kurilin
Wenn Ihnen diese Antwort gefallen hat, klicken Sie auf "Diese Antwort ist nützlich". Dies ist auch ein Zeichen der Wertschätzung für diejenigen, die sich die Mühe gemacht haben, die Frage zu recherchieren und zu beantworten. :)
João Santana
1

Nur zu Ihrer Information: Ich habe gerade ein vollständiges RoR-Setup auf Ubuntu 12.04 in fünf Minuten abgeschlossen.

  • sudo apt-get install git git-svn postgresql-9.1 libpq-dev ruby1.9.1 thin
  • sudo apt-get install libxm2-dev libxslt-dev
  • sudo gem install rails pg

libxm2-devund libxslt-devsind nur für Nokogiri (wenn Sie es brauchen) und postgresql-9.1, libpq-devund pgsind nur für PostgresSQL Datenbank (wenn Sie es brauchen).

Danach konnte ich bundle installin meinen Rails-Projektverzeichnissen alle benötigten Gems zum Laufen bringen und alles funktionierte. Keine Notwendigkeit rvmund ich bin nie auf kaputte Pakete gestoßen. OK, ich war nicht an einem bestimmten Build von Ruby interessiert , aber warum waren Sie dann?

Vielleicht sind Sie auf eine der (leider vielen) "Ruby-Handbuch-Hack-Installation-du-Jour" Websites gestoßen, auf der Sie aufgefordert werden, alle Paketverwaltungssysteme zu entfernen und alles selbst zu kompilieren.

Im Gegensatz zum vorherigen Poster denke ich, dass ein Unterschied zwischen Windows und Linux in Bezug auf Ruby darin besteht, dass es in Windows keine "offizielle" Methode zur Installation von Software gibt (sondern viele inoffizielle Methoden, Installer, Websites usw.), aber in Linux gibt es eine "offizieller" Weg (das Paket des Distributors) und das funktioniert normalerweise am besten, schränkt aber Ihre Auswahl etwas ein.

Und da Linux-Software in der Regel viel mehr (Code, Funktionalität usw.) als Windows-Software gemeinsam hat und die Unterscheidung zwischen "Betriebssystem" und "Anwendungen" viel unscharfer ist als unter Windows, wenn Sie mit dem manuellen Kompilieren und Installieren von Software in beginnen Linux muss sich viel mehr um Abhängigkeiten, Bibliotheken usw. kümmern als Windows.

Der beste Weg ist immer, die Distributoren-Pakete zu bekommen (meine Erfahrung).

Jens
quelle
Das Problem bei diesem Ansatz ist, dass nicht alle Edelsteine ​​auf diese Weise verfügbar sind. Welches ist der Reiz für RVM (das hat dann seine eigenen Nachteile).
Thufir
Thufir, welche Edelsteine ​​fehlen konkret? Und warum ist dies ein Problem (da Sie immer mehr Edelsteinquellen hinzufügen können, indem Sie entweder Edelstein oder Bündler verwenden)?
Jens
korrigiere mich, wenn falsch, aber gem ist ein Paketmanager, der mit apt-get verwandt ist. Sie schlagen vor, yum sozusagen neben apt-get zu verwenden. Klingt für mich nach Chaos, auch wenn nichts schief geht. (Was ist, wenn ein Versionskonflikt zwischen dem, was apt-get hat, und dem, was gem hat, besteht?) Es gibt viele, viele Edelsteine, die über gem verfügbar sind und nicht in apt-get enthalten sind.
Thufir
Deshalb ziehe ich bei 'Rails' eine Linie. Ich verwende apt-get, um alles zu installieren, einschließlich Ruby, und verwende dann gem, um Bundler zu installieren. Bundler, um die erforderliche Rails-Version und alle erforderlichen Gems für eine bestimmte Rails-App gemäß ihrer Gemfile zu installieren. Zu Beginn installiere ich normalerweise die aktuelle Rails-Version auch systemweit über "gem install" (dies schadet nicht, ist aber nicht erforderlich). Ja, dies gibt Ihnen nur eine Ruby-Version, mit der Sie arbeiten können, aber das war bisher kein Problem.
Jens
1
Thufir, lies meinen Beitrag nochmal. Ich verwende Apt for Gems nicht in Rails-Apps. Ich benutze Bundler, mit einem separaten Gem-Set für jede App.
Jens