by on
Son las 17:50. Empecé a las 13:20. ¡Lo hice! Error con RoR y zlib ERROR: Loading command: install (LoadError) cannot load such file -- zlib ERROR: While executing gem ... (NameError) uninitialized constant Gem::Commands::InstallCommand En estas épocas del año, que me encuentro desarrollando en Ruby on Rails, me ha tocado montar otro servidor que utilizaremos en producción con un proyecto que tengo. Ha sido un largo trabajo. He tenido errores, pero los he solucionado (justo cuando estaba a punto de rendirme).
  1. He instalado un Ubuntu Server y he escogido los paquetes LAMP (para mis proyectos utilizaré Apache y MySQL con RoR).
  2. Instalamos el paquete que nos permitirá compilar y librerías de YAML: macool@shiriculapo.local:~$ sudo apt-get install build-essential libyaml-dev zlib1g-dev libreadline-dev libopenssl-ruby libssl-dev
  3. Descargamos el código fuente de Ruby (1.9.3): macool@shiriculapo.local:~$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
  4. Descomprimimos el paquete de código fuente que acabamos de descargar: macool@shiriculapo.local:~$ tar xzvf ruby-1.9.3-p0.tar.gz Nos cambiamos a la carpeta que acabamos de descomprimir: macool@shiriculapo.local:~$ cd ruby-1.9.3-p0
  5. Esta es la parte importante.Antes de realizar este paso, estuve toda la tarde probando un millón de posibles soluciones, incluyendo:
    • utilizar rvm de mil maneras
    • instalar miles de librerías relacionadas con zlib
    • instalar ruby, rubygems y rails desde el repositorio, con apt-get install ruby-full rubygems rails
    • compilar zlib manualmente y especificarlo al momento de configurar ruby para su compilación
    • otras
    No pierdan su tiempo, ni el mío. No hablaré acerca de ninguna de estas "soluciones"; no funcionan. Haremos algo más sencillo, que es lo que a mi me resultó. Descomentaremos una línea en la que ruby (por defecto) ignora zlib. Yo soy un fan de GNU, y utilizaré nano(un editor de texto de terminal), pero ustedes pueden utilizar cualquier editor: macool@shiriculapo.local:~/ruby-1.9.3-p0$ nano ext/Setup Aquí, vamos a la última línea y descomentamos zlib, como en la imagen: descomentando zlib En nano, cierro el archivo con CTRL+X (y lo guardo)
  6. Configuramos las librerías que ruby necesita para que coincidan con las de nuestro servidor: macool@shiriculapo.local:~/ruby-1.9.3-p0$ ./configure Una vez configurado, compilamos ruby: macool@shiriculapo.local:~/ruby-1.9.3-p0$ sudo make ... E instalamos ruby: macool@shiriculapo.local:~/ruby-1.9.3-p0$ sudo make install En este punto, ruby ya debe estar instalado: ruby -v
  7. Esta es la otra parte importante. Instalamos zlib. Nos cambiamos a la carpeta ext/zlib dentro del código fuente de ruby: macool@shiriculapo.local:~/ruby-1.9.3-p0$ cd ext/zlib/ Configuramos las librerías de zlib: macool@shiriculapo.local:~/ruby-1.9.3-p0/ext/zlib$ ruby extconf.rb Compilamos zlib: macool@shiriculapo.local:~/ruby-1.9.3-p0/ext/zlib$ make Instalamos zlib: macool@shiriculapo.local:~/ruby-1.9.3-p0/ext/zlib$ sudo make install
  8. Ahora, vamos por rubygems. Salimos de la carpeta de ruby: macool@shiriculapo.local:~/ruby-1.9.3-p0$ cd .. Descargamos el código fuente al servidor: macool@shiriculapo.local:~$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.21.tgz Descomprimimos el código fuente de rubygems (que acabamos de descargar): macool@shiriculapo.local:~$ tar xzvf rubygems-1.8.21.tgz Nos cambiamos a la carpeta del código fuente de rubygems: macool@shiriculapo.local:~$ cd rubygems-1.8.21
  9. Instalamos rubygems: macool@shiriculapo.local:~/rubygems-1.8.21$ sudo ruby setup.rb Salimos de la carpeta de rubygems: macool@shiriculapo.local:~/rubygems-1.8.21$ cd .. rubygems debe estar instalado: gem -v En este punto, ya podemos eliminar todo lo que acabamos de descargar; no nos servirá para nada más
  10. Instalamos rails (con rubygems, se deberían instalar todas sus dependencias): macool@shiriculapo.local:~$ sudo gem install rails rails -v
Eso es todo :)
by on
Un extracto de una entrada que leí en Applesfera (Creo que este es uno de los grandes problemas al momento de innovar, y últimamente veo mucho por acá)
"La creatividad y la innovación son algo de lo que no se puede hacer un diagrama de flujo. De algunas cosas puedes, y lo hacemos, somos muy disciplinados en esas áreas. Pero la creatividad no es una de ellas. Muchas empresas cuentan con departamentos de innovación y esto es siempre una señal de que algo está mal, que necesitan un vicepresidente de innovación o algo así. Ya sabes, poner un cartel anunciándolo en la puerta." (Risas)
Tim Cook.