Pourquoi est-il si difficile de configurer Ruby on Rails sur Ubuntu?

13

J'ai passé quelques heures ce matin à essayer de configurer Rails sur une nouvelle instance d'Ubuntu et j'ai remarqué que le processus est incroyablement plus compliqué que sur Windows. Sous Windows, je vais sur rubyinstaller.org, exécute l'exécutable (j'étais particulièrement intéressé par 1.9.2-p180), puis ajuste le chemin du système en conséquence. Rails ne nécessite également aucune étape supplémentaire, je peux cloner un référentiel git et commencer à démarrer.

Sur Ubuntu, j'ai dû installer le RVM (ce que j'aurais pu faire pour Windows également), installer les prérequis qui sont répertoriés, faire échouer l'apt-get parce qu'un tas de ces packages n'étaient plus disponibles. J'ai finalement couru rvm installseulement pour découvrir que make n'allait pas fonctionner, j'ai donc dû commenter manuellement un tas de dépendances sur openssl à partir d'un des fichiers .c et le reconstruire, puis il a finalement été installé. Cependant, Rails était loin d'être terminé, j'ai donc dû installer un autre groupe de conditions préalables, modifier un fichier supplémentaire dans la source ruby ​​et l'exécuter, puis j'ai enfin pu rails consolecommencer.

Est-ce assez normal? Dois-je m'attendre à ce que tout prenne quelques heures supplémentaires sur Ubuntu si je vais développer des applications Rails? J'ai dû consulter au moins 3-4 guides pour 11.04 et au moins 5 messages de débordement de pile différents pour faire fonctionner la chose, cela semble être une expérience utilisateur très traumatisante pour moi.

Alexandr Kurilin
la source
1
Quel guide suivez-vous?
Jorge Castro
C'est toujours un problème, mais ce n'est pas trop mal - utilisez RVM. Les rails à mon humble avis doivent être supprimés de apt car cela ne fait que causer des problèmes de version. (Ou a le potentiel de le faire.)
Thufir
En comparaison, l' installation de Meteor.js est un jeu d'enfant .
Dan Dascalescu

Réponses:

4

Quant à savoir pourquoi votre expérience a été difficile, je ne suis pas sûr que l'on puisse y répondre sans une meilleure connaissance de ce que vous avez fait exactement. Concernant votre question "est-ce assez normal?" Je ne suis pas sûr qu'on puisse y répondre définitivement mais je peux relayer mon expérience en espérant que cela soit utile!

Je développe sur Rails avec Ubuntu depuis plus de deux ans et je peux dire que je n'ai jamais eu à faire face à des packages cassés ou à toucher / reconstruire du code dans l'un des packages requis. Je réinstalle complètement avec chaque version et mon expérience a été qu'il est plus facile de configurer mon environnement Rails avec chaque version (probablement en raison de l'expérience croissante). En général, après une installation propre d'Ubuntu, je dirais qu'il me faut moins d'une heure (parfois beaucoup moins) pour amener mon environnement au stade où il était avant l'installation propre.

Il y a quelques jours, j'ai suivi le tutoriel lié pour réinitialiser complètement mon environnement de développement Rails le 11.10. J'utilisais auparavant les packages Ruby du gestionnaire de paquets, qui fonctionnaient bien jusqu'à ce que je devais exécuter plusieurs versions de Ruby. Notez que s'appuyer sur les packages du gestionnaire de packages pour le développement de Ruby n'est généralement pas considéré comme le meilleur moyen de développer Ruby sur Ubuntu (voir l'article lié pour plus de détails) mais cela a toujours bien fonctionné pour moi dans le passé (lorsque vous n'avez besoin que d'une seule version de Rubis, Rails et Gemmes).

Je pense qu'une chose qui différencie Linux de certains autres systèmes d'exploitation est la possibilité de faire quelque chose de différentes manières, alors que dans certains autres systèmes d'exploitation, cela ne peut être possible que d'une manière particulière. Cela est vrai pour la configuration de votre environnement de développement (il existe plusieurs façons de le faire) et il est facile de voir cela conduire à la confusion et à la nécessité de consulter différents guides. D'après mon expérience limitée, l'utilisation du script d'installation de bash RVM dans l'article lié a été la plus simple (c'est-à-dire, compte tenu des principaux avantages de RVM, si RVM ne vous est d'aucun avantage, il peut y avoir des moyens plus faciles tels que le gestionnaire de packages) .

Si vous connaissez mieux le développement sous Windows et que vous configurez Ubuntu pour le développement pour la première fois, je pense qu'il est raisonnable de s'attendre à ce que cela prenne plus de temps simplement parce que beaucoup de choses prennent plus de temps la première fois que nous apprenons à les faire. Si cela finit par être "traumatisant", j'espère simplement que vous pourrez trouver l'expérience et les connaissances que vous avez acquises précieuses :)

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

Sheldon
la source
Merci pour ce guide, j'y reviendrai la prochaine fois. Je dois souligner que c'est un peu idiot, car d'abord il vous avertit de ne jamais utiliser apt-get, puis il en télécharge une douzaine de dépendances ruby: | Dans tous les cas, il est possible qu'une partie de ma douleur ait été causée par l'utilisation spécifique de 1.9.2-p180, les futures versions avaient des correctifs spécifiques à Ubuntu qui devaient être corrigés manuellement pour cette version. Excellente réponse dans l'ensemble, me donne plus de confiance quant au maintien du système d'exploitation pour les travaux futurs.
Alexandr Kurilin
Voici le problème que je rencontrais, entre autres: digitaldisorder.posterous.com/ruby-rvm-and-debian-sid-problems
Alexandr Kurilin
Si vous avez aimé cette réponse, cliquez sur "Cette réponse est utile" en plus de remercier qui a répondu. C'est aussi une démonstration d'appréciation pour ceux qui ont pris la peine de rechercher et de répondre à la question. :)
João Santana
1

Juste pour info: je viens de terminer une configuration RoR complète sur Ubuntu 12.04 en cinq minutes.

  • 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-devet libxslt-devsont uniquement pour Nokogiri (si vous en avez besoin) et postgresql-9.1, libpq-devet pgsont uniquement pour la base de données PostgresSQL (si vous en avez besoin).

Après cela, j'ai pu exécuter bundle installdans mes répertoires de projet Rails pour obtenir tous les Gems requis et fonctionner et tout a fonctionné. Pas besoin rvmet je n'ai jamais rencontré de colis cassés. OK, donc je n'étais pas intéressé par une version spécifique de Ruby, mais alors pourquoi étiez-vous?

Peut-être avez-vous rencontré l'un des (malheureusement beaucoup) sites Web "Ruby-manual-hack-installation-du-jour" qui vous disent de supprimer tous les systèmes de gestion de paquets et de tout compiler par vous-même.

Contrairement à l'affiche précédente, je pense qu'une différence entre Windows et Linux en ce qui concerne Ruby est que dans Windows il n'y a pas de manière "officielle" d'installer le logiciel (mais de nombreuses manières non officielles, installateurs, sites Web, etc.), mais sous Linux il y a un manière "officielle" (le package du distributeur) et qui fonctionne généralement mieux mais limite quelque peu vos choix.

Et puisque les logiciels Linux ont tendance à partager beaucoup plus (code, fonctionnalités, etc.) en tant que logiciels Windows, et la distinction entre le "système d'exploitation" et les "applications" est beaucoup plus floue que sous Windows, si vous commencez à compiler et installer manuellement des logiciels dans Linux s'attend à devoir se soucier beaucoup plus des dépendances, des bibliothèques, etc. que sous Windows.

La meilleure façon est toujours d'obtenir les packages distributeurs (mon expérience).

Jens
la source
le problème avec cette approche, «sudo gem install rails pg» est que toutes les gemmes ne sont pas disponibles de cette façon. Quel est l'attrait de RVM (qui a alors ses propres inconvénients).
Thufir
Thufir, quelles gemmes manquent spécifiquement? Et pourquoi est-ce un problème (puisque vous pouvez toujours ajouter plus de sources de gemmes, en utilisant des gemmes ou des bundles)?
Jens
corrigez-moi si je me trompe, mais gem est un gestionnaire de paquets semblable à apt-get. Ce que vous proposez, c'est d'utiliser yum avec apt-get, pour ainsi dire. Cela me semble juste être du chaos, même si rien ne va mal. (Et s'il y a un conflit de version entre ce que possède apt-get et ce que possède gem?) Il y a beaucoup, beaucoup de gemmes disponibles via gem qui ne sont pas dans apt-get.
Thufir
C'est pourquoi je trace une ligne sur «rails». J'utilise apt-get pour installer tout, y compris Ruby, puis utiliser gem pour installer Bundler et bundler pour installer la version Rails requise et toutes les gemmes requises pour une application Rails spécifique selon son Gemfile. Pour commencer, j'installe généralement la version actuelle de Rails via 'gem install' à l'échelle du système (cela ne fait pas de mal mais n'est pas nécessaire). Oui, cela ne vous donne qu'une seule version Ruby avec laquelle travailler, mais cela n'a pas été un problème jusqu'à présent.
Jens
1
Thufir, relis mon article. Je n'utilise pas apt pour les gemmes dans les applications de rails. J'utilise Bundler, avec un ensemble de gemmes distinct pour chaque application.
Jens