¿Por qué es tan difícil configurar Ruby on Rails en Ubuntu?

13

Pasé algunas horas esta mañana tratando de configurar Rails en una nueva instancia de Ubuntu y noté que el proceso es increíblemente más complicado que en Windows. En Windows, voy a rubyinstaller.org, ejecuto el ejecutable (estaba específicamente interesado en 1.9.2-p180) y luego ajusto la ruta del sistema en consecuencia. Rails tampoco requiere pasos adicionales, puedo clonar un repositorio git y comenzar a arrancar.

En Ubuntu tuve que instalar el RVM (lo que también podría haber hecho para Windows), instalar los requisitos previos que figuran en la lista, hacer que apt-get falle porque un montón de esos paquetes ya no estaban disponibles. Luego finalmente corrí rvm installsolo para descubrir que make no iba a funcionar, así que tuve que comentar manualmente un montón de dependencias en openssl de uno de los archivos .c y reconstruirlo, luego finalmente se instaló. Sin embargo, Rails aún estaba lejos de terminar, así que tuve que instalar otro grupo de requisitos previos, editar algún archivo adicional en la fuente de ruby ​​y ejecutarlo, y finalmente pude rails consolecomenzar incluso.

¿Es esto bastante normal? ¿Debería esperar que todo tome un par de horas extra en ubuntu si voy a desarrollar aplicaciones Rails? Tuve que consultar al menos 3-4 guías para 11.04 y al menos 5 publicaciones de desbordamiento de pila diferentes para que funcione, me parece una experiencia de usuario muy traumática.

Alexandr Kurilin
fuente
1
¿Qué guía sigues?
Jorge Castro
Siempre es una molestia, pero no es tan malo: use RVM. Los rieles de la OMI deben eliminarse de apt porque solo causa dolor de versiones. (O tiene el potencial para.)
Thufir
En comparación, instalar Meteor.js es muy sencillo .
Dan Dascalescu

Respuestas:

4

Con respecto a por qué su experiencia fue difícil, no estoy seguro de que pueda responderse sin más conocimiento de lo que hizo exactamente. Con respecto a su pregunta de "¿es esto bastante normal?" No estoy seguro de que pueda responderse definitivamente, pero puedo transmitir mi experiencia con la esperanza de que sea útil.

He estado desarrollando en Rails con Ubuntu durante más de dos años y puedo decir que nunca tuve que lidiar con paquetes rotos o tocar / reconstruir código en ninguno de los paquetes requeridos. Reinstalo completamente con cada versión y mi experiencia ha sido que es más fácil configurar mi entorno Rails con cada versión (probablemente debido a la creciente experiencia). En general, después de una instalación limpia de Ubuntu, diría que me lleva menos de una hora (a veces mucho menos) llevar mi entorno a la etapa donde estaba antes de la instalación limpia.

Hace un par de días seguí el tutorial vinculado para volver a configurar completamente mi entorno de desarrollo de Rails en 11.10. Anteriormente estaba usando paquetes de administrador de paquetes de Ruby, que funcionaron bien hasta que necesité ejecutar varias versiones de Ruby. Tenga en cuenta que confiar en los paquetes del administrador de paquetes para el desarrollo de Ruby generalmente no se considera la mejor manera de desarrollar Ruby en Ubuntu (consulte el artículo vinculado para más detalles), pero siempre me ha funcionado bien en el pasado (cuando solo necesita una versión de Rubí, rieles y gemas).

Creo que una cosa que diferencia a Linux de otros sistemas operativos es la capacidad de hacer algo de muchas maneras diferentes, mientras que en otros sistemas operativos solo puede ser posible de una manera particular. Esto es cierto al configurar su entorno de desarrollo (hay varias formas de hacerlo) y es fácil ver que esto genera confusión y la necesidad de consultar diferentes guías. Desde mi experiencia limitada, usar el script de instalación de bash de RVM en el artículo vinculado ha sido lo más fácil (es decir, teniendo en cuenta los principales beneficios de RVM, si RVM no es beneficioso para usted, entonces puede haber formas más fáciles, como el administrador de paquetes) .

Si está más familiarizado con el desarrollo en Windows y está configurando Ubuntu para el desarrollo por primera vez, creo que es razonable esperar que tome más tiempo simplemente porque muchas cosas tardan más la primera vez que aprendemos a hacerlo. Si termina siendo "traumático", entonces espero que pueda encontrar la experiencia y el conocimiento que adquirió valiosa :)

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

Sheldon
fuente
Gracias por esa guía, me referiré a ella la próxima vez. Tengo que señalar que es algo tonto, porque primero te advierte sobre nunca usar apt-get, y luego procede a descargar una docena de dependencias de ruby ​​más o menos: | En cualquier caso, es posible que parte de mi dolor haya sido causado por tener que usar específicamente 1.9.2-p180, las versiones futuras tenían correcciones específicas de Ubuntu que debían abordarse manualmente para esa versión. Una gran respuesta en general, me da más confianza para apegarme al sistema operativo para trabajos futuros
Alexandr Kurilin el
Aquí está el problema que estaba encontrando, entre muchos otros: digitaldisorder.posterous.com/ruby-rvm-and-debian-sid-problems
Alexandr Kurilin
Si le gustó esta respuesta, haga clic en "Esta respuesta es útil" además de agradecer a quienes respondieron. Esta es también una demostración de agradecimiento para aquellos que se tomaron la molestia de investigar y responder la pregunta. :)
João Santana
1

Solo para tu información: acabo de terminar una configuración completa de RoR en Ubuntu 12.04 en cinco minutos.

  • 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-devy libxslt-devson solo para Nokogiri (si lo necesita) y postgresql-9.1, libpq-devy pgson solo para la base de datos PostgresSQL (si lo necesita).

Después de eso pude ejecutar bundle installen mis directorios de proyecto Rails para tener todas las gemas requeridas en funcionamiento y todo funcionó. No es necesario rvmy nunca encontré paquetes rotos. OK, entonces no estaba interesado en una versión específica de Ruby, pero ¿por qué estabas?

Tal vez haya encontrado uno de los (desafortunadamente muchos) sitios web "Ruby-manual-hack-installation-du-jour" que le dicen que deseche todos los sistemas de administración de paquetes y compile todo usted mismo.

En contraste con el comentario anterior creo que una diferencia entre Windows y Linux en relación con Ruby es que en Windows no hay ninguna manera "oficial" de la instalación de software (pero muchos aspectos no oficiales, instaladores, sitios web, etc.), pero en Linux no es una forma "oficial" (el paquete del distribuidor) y eso generalmente funciona mejor pero limita un poco sus opciones.

Y dado que el software de Linux tiende a compartir mucho más (código, funcionalidad, etc.) como el software de Windows, y la distinción entre el "SO" y las "aplicaciones" es mucho más borrosa que en Windows, si comienza a compilar e instalar manualmente el software en Linux espera tener que preocuparse mucho más por las dependencias, bibliotecas, etc. que en Windows.

La mejor manera es siempre obtener los paquetes de los distribuidores (mi experiencia).

Jens
fuente
El problema con este enfoque, 'sudo gem install rails pg' es que no todas las gemas están disponibles de esa manera. Cuál es el atractivo para RVM (que luego tiene sus propios inconvenientes).
Thufir
Thufir, ¿qué gemas faltan específicamente? ¿Y por qué es esto un problema (ya que siempre puedes agregar más fuentes de gemas, ya sea usando gemas o paquetes)?
Jens
corrígeme si está equivocado, pero gem es un administrador de paquetes similar a apt-get. Lo que estás sugiriendo es usar yum junto con apt-get, por así decirlo. Solo me parece un caos, incluso si nada sale mal. (¿Qué pasa si hay un conflicto de versiones entre lo que tiene apt-get y qué gema tiene?) Hay muchas gemas disponibles a través de gem que no están en apt-get.
Thufir
Es por eso que dibujo una línea en 'rieles'. Utilizo apt-get para instalar todo, incluido Ruby, luego uso gem para instalar Bundler y bundler para instalar la versión de Rails requerida y todas las gemas necesarias para una aplicación específica de Rails de acuerdo con su Gemfile. Para comenzar, generalmente instalo la versión actual de Rails a través de 'gem install' en todo el sistema también (esto no duele pero no es necesario). Sí, esto te da una sola versión de Ruby para trabajar, pero hasta ahora no ha sido un problema.
Jens
1
Thufir, lee mi publicación de nuevo. No estoy usando apt para gemas en aplicaciones de rieles. Yo uso Bundler, con un conjunto de gemas por separado para cada aplicación.
Jens