Free As In Freelance
being the adventures of Jaime Iniesta on the wild wild web
Cuidado con Ubuntu 8.10, viene con Ruby 1.8.7
written on 11-01-2008 |
comments
Ayer cometí una imprudencia, aventurándome a actualizar mi Ubuntu a la versión 8.10 Intrepid Ibex. Como resultado directo de esto me he quedado sin mi entorno de desarrollo en ruby on rails, así que aquí va una advertencia a los programadores ruby que uséis, como yo, Ubuntu: ¡no te actualices todavía!
Para empezar, el proceso de instalación fué larguísimo (el programa de actualización falló, lo maté tras 15 horas colgado y después hice la instalación a pata desde consola con sudo aptitude update && sudo aptitude safe-upgrade && sudo aptitude full-upgrade).
Cuando finalmente acabó la instalación, reinicié la máquina y aparentemente todo estaba bien. Ubuntu 8.10 no presenta grandes cambios a simple vista... algunas mejoras de interfaz, las fuentes son más legibles, detalles así (supongo que tiene bastantes mejoras a nivel interno, la verdad es que parece algo más rápido).
Pero... tras un rato programando con ruby on rails, comenzaron a pasar cosas raras. Era como si hiciera cache de los partials... los modificaba pero no se reflejaban los cambios al refrescar el navegador... Algunos partials se pintaban mal, con el código cortado... Cosas bastante raras.
Tras un rato probando, me dí cuenta de que lo que no le gustaba eran las líneas tipo:
<% #TODO: ... %>
...no me preguntéis por qué, pero si quitaba ese tipo de comentarios del código, volvía a funcionar. Era como si a partir de ese comentario, ignorara el código siguiente, o algo así.
Investigando un poco más, descubrí que al actualizar Ubuntu a 8.10 me habían metido la versión 1.8.7 de Ruby. Y como dicen en la página de Ruby on Rails, "Ruby 1.8.7 still has some bugs to straighten out. ". En la página de Ruby también indican que la última versión estable de Ruby es la 1.8.6.
En resumidas cuentas: que la gente de Ubuntu ha metido una versión inestable de Ruby en su última versión. Algo similar ocurrió en la Ubuntu 8.04, donde metieron Firefox 3 cuando aún estaba en beta... y se colgaba cada dos por tres.
No me gusta esta política de Ubuntu. Digo yo que meten estas versiones beta porque esperan que al poco tiempo del lanzamiento el paquete se actualice y salga de beta, pero mientras tanto eso que has incluído en tu release estable... es defectuoso. Da muy mala imagen de GNU/Linux, donde se supone que uno de sus puntos fuertes es la estabilidad.
Bueno, y ahora qué? Desde luego, no continuar desarrollando con ruby 1.8.7, por si me oculta más bugs sorpresa. Así que sudo aptitude remove ruby, descargar y compilar ruby 1.8.6, reinstalar rubygems, y encontrarme con que de todos modos, no arranca mi aplicación rails: "no such file to load -- openssl"... ajá! claro, también tendría que reinstalar las librerías de ruby para la 1.8.6, ya que en mi sistema siguen las de la 1.8.7... por si fuera poco, me han desaparecido todas las gemas que tenía instaladas, y no eran pocas...
Desde este punto, tengo varias opciones:
<li><strong>Quedarme con ruby 1.8.7</strong>. Lo más sencillo, pero también me puede esconder muchos bugs y darme quebraderos de cabeza durante el desarrollo.</li>
<li><strong>Seguirme pegando para instalar ruby 1.8.6</strong> y todas sus librerías, reinstalar las gemas necesarias, etc. Con el nivel de quemazón que tengo, me parece que se ha agotado mi paciencia.</li>
<li><strong>Desinstalar Ubuntu 8.10 y volverme a Ubuntu 8.04</strong>. Quién me mandaría a mí actualizarme ahora. Tendría que formatear el disco y volver a copiar mis datos del backup, e instalar todos los programas que necesito. Pasando.</li>
<li><strong>Hacer un downgrade a la 8.04</strong>. En principio igual que haces un dist-upgrade se puede hacer el proceso inverso para volver a una versión anterior. Pero es un proceso poco documentado y directamente te advierten que puede dar bastantes problemas: "<a href="https://help.ubuntu.com/community/DowngradeHowto">The last step probably will end up a catastrophic mess of incompletely installed packages</a>". Además es sábado y me quiero ir de paseo.</li>
<li><strong>Comprarme el macbook de una puta vez</strong>. Tenía pensado hacer el pedido el día 5 a través de la web para tenerlo a final de mes, pero ya que tengo que reinstalar mi entorno de desarrollo, estoy por pasarme el lunes por la frutería más cercana y comprarme una manzana.</li>
ACTUALIZACIÓN / PUNTUALIZACIÓN: ruby 1.8.7 es estable, es rails quien tiene problemas de incompatibilidad con algunas versiones. Más información en los comentarios de este post.
ACTUALIZACIÓN: finalmente, lo que hice fué reinstalar Ubuntu 8.04, ha sido una solución mucho más rápida que pasar por el macbook (por el momento dejo aparcada esta idea... Ubuntu 8.04 mooola!)
