Instalación

Si bien aún no hay un rpm de typo en los repositorios Yum oficiales, no hace falta buscar mucho ya que Fedora incluye soporte para rubygems, una herramienta de gestión de software que se les parecerá mucho al propio yum, vea por qué.

Si no tiene instalado rubygems, instálelo.

# yum -y install rubygems
...
Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 rubygems                noarch     0.9.4-1.fc8      fedora            498 k
Installing for dependencies:
 ruby                    i386       1.8.6.114-1.fc8  updates           514 k
 ruby-irb                i386       1.8.6.114-1.fc8  updates           274 k
 ruby-libs               i386       1.8.6.114-1.fc8  updates           1.7 M
 ruby-rdoc               i386       1.8.6.114-1.fc8  updates           342 k

Transaction Summary
=============================================================================
Install      5 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 3.3 M
Is this ok [y/N]: y
...
Installed: rubygems.noarch 0:0.9.4-1.fc8
Dependency Installed: ruby.i386 0:1.8.6.114-1.fc8 ruby-irb.i386 0:1.8.6.114-1.fc8 ruby-libs.i386 0:1.8.6.114-1.fc8 ruby-rdoc.i386 0:1.8.6.114-1.fc8
Complete!

Ahora viene la magia de rubygems:

[root@gomix-pc ~]# gem install typo
Install required dependency rails? [Yn]  Y
Install required dependency rake? [Yn]  Y
Install required dependency activesupport? [Yn]  Y
Install required dependency activerecord? [Yn]  Y
Install required dependency actionpack? [Yn]  y
Install required dependency actionmailer? [Yn]  Y
Install required dependency activeresource? [Yn]  Y
Install required dependency mongrel? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. mongrel 1.1.4 (x86-mswin32-60)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (ruby)
 4. mongrel 1.1.3 (i386-mswin32)
 5. mongrel 1.1.3 (java)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 3
Install required dependency gem_plugin? [Yn]  Y
Install required dependency daemons? [Yn]  Y
Install required dependency fastthread? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. Skip this gem
 4. Cancel installation
> 2
Building native extensions.  This could take a while...
ERROR:  While executing gem ... (Gem::Installer::ExtensionBuildError)
    ERROR: Failed to build gem native extension.

ruby extconf.rb install typo
can't find header files for ruby.


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.1/ext/fastthread/gem_make.out

Aqui la magia se detiene pero es interesante discutir un poco sobre el asunto. La idea de rubygems es poner a la disposición de las plataformas Ruby el software que se requiera, algo muy similar a lo que hace yum. La diferencia radica en que como Ruby es un lenguaje multiplataforma interpretado, no está atado a la arquitectura ni al sistema operativo base de la aplicación Ruby (similar a Java). Ahora bien, las extensiones al propio Ruby pueden venir hechas en C u otro lenguaje compilado, aqui es donde nuestra magia se ha detenido porque el comando gem install ha intentado compilar alguna librería de extensión a Ruby sin los archivos necesarios previamente instalados para que esta compilación se pueda hacer (incluyendo el compilador C/C++ o el que toque, y si esto se parece a Gentoo bajando los fuentes y compilando al momento de instalar, interesante no?). Por su parte el proyecto Fedora y los programadores Ruby han puesto via Yum una serie de "rubygems", esto quiere decir que nos podemos evitar este problema asi que la discusión se transforma en si usar gem o yum.

Mi recomendación en caso de entornos de producción es usar rubygems ya que rubygems tiene ciertas ventajas sobre yum, una de las más claras es el manejo de múltiples versiones del mismo sw instalado simultáneamente sin hacer malabarismos (no estoy siquiera seguro de que se pueda hacer "fácilmente" con yum). Pero usted es libre y hacer las cosas via yum, que se encuentra integrado a Fedora, le facilitaría las actualizaciones de sus rubygems por medio de las interfaces estandar Fedora.

Para continuar con la instalación de typo, voy a escoger el camino 100%-rubygems y no yum así que me toca instalar (y luego desinstalar preferiblemente) los requerimientos para que las respectivas compilaciones se pueden llevar a buen término.

## Después de identificar las dependencias de toda la cadena...
# yum -y install ruby-devel
# yum -y install gcc
# yum install sqlite-devel

# gem install typo
Need to update 1 gems from http://gems.rubyforge.org
.
complete
Install required dependency mongrel? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. mongrel 1.1.4 (x86-mswin32-60)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (ruby)
 4. mongrel 1.1.3 (i386-mswin32)
 5. mongrel 1.1.3 (java)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 3
Install required dependency fastthread? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (i386-mswin32)
 3. fastthread 1.0.1 (ruby)
 4. Skip this gem
 5. Cancel installation
> 3
Building native extensions.  This could take a while...
Install required dependency cgi_multipart_eof_fix? [Yn]  Y
Building native extensions.  This could take a while...
Install required dependency mongrel_cluster? [Yn]  Y
Install required dependency sqlite3-ruby? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. sqlite3-ruby 1.2.1 (mswin32)
 2. sqlite3-ruby 1.2.1 (ruby)
 3. sqlite3-ruby 1.2.0 (mswin32)
 4. sqlite3-ruby 1.2.0 (ruby)
 5. Skip this gem
 6. Cancel installation
> 2
Building native extensions.  This could take a while...
Install required dependency rails-app-installer? [Yn]  Y
Install required dependency xmpp4r? [Yn]  Y
Install required dependency rcov? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. rcov 0.8.1.2.0 (ruby)
 2. rcov 0.8.1.2.0 (mswin32)
 3. rcov 0.8.1.1.0 (mswin32)
 4. rcov 0.8.1.1.0 (ruby)
 5. Skip this gem
 6. Cancel installation
> 1
Building native extensions.  This could take a while...
Install required dependency flexmock? [Yn]  Y
Install required dependency rspec? [Yn]  Y
Install required dependency ruby-debug? [Yn]  Y
Install required dependency ruby-debug-base? [Yn]  Y
Select which gem to install for your platform (i386-linux)
 1. ruby-debug-base 0.10.0 (mswin32)
 2. ruby-debug-base 0.10.0 (ruby)
 3. Skip this gem
 4. Cancel installation
> 2
Building native extensions.  This could take a while...
Successfully installed typo-5.0.2
Successfully installed sqlite3-ruby-1.2.1
Successfully installed rails-app-installer-0.2.0
Successfully installed xmpp4r-0.3.2
Successfully installed rcov-0.8.1.2.0
Successfully installed flexmock-0.8.0
Successfully installed rspec-1.1.3
Successfully installed ruby-debug-0.10.0
Successfully installed ruby-debug-base-0.10.0
Installing ri documentation for sqlite3-ruby-1.2.1...
Installing ri documentation for rails-app-installer-0.2.0...
Installing ri documentation for rcov-0.8.1.2.0...
Installing ri documentation for flexmock-0.8.0...
Installing ri documentation for rspec-1.1.3...
Installing ri documentation for ruby-debug-0.10.0...
Installing ri documentation for ruby-debug-base-0.10.0...
Installing RDoc documentation for sqlite3-ruby-1.2.1...
Installing RDoc documentation for rails-app-installer-0.2.0...
Installing RDoc documentation for rcov-0.8.1.2.0...
Installing RDoc documentation for flexmock-0.8.0...
Installing RDoc documentation for rspec-1.1.3...
Installing RDoc documentation for ruby-debug-0.10.0...
Installing RDoc documentation for ruby-debug-base-0.10.0...

Adicional debe instalar vía rubygems rake ya que las dependencias no están completas en el rubygems (alguien presumió que rake, al igual que make, siempre debe estar instalado, o simplemente se les olvidó).

$ su -
<contraseñ>
# gem install rake
...

Seguimiento de Paquetes Adicionales

Los siguientes paquetes Fedora fueron agregados para poder compilar librerías Ruby o similares para instalar Typo. Estos paquetes deberían poderse desinstalar al terminar el procedimiento (por seguridad).

  1. ruby-devel
  2. gcc
    1. glibc-devel
    2. glibc-headers
    3. kernel-headers
  3. sqlite-devel

Creación de un Blog

Ahora "instalaré" un blog personal basándome en Typo. Como usuario regular:

$ mkdir MiBlog
$ typo install MiBlog
 Installing typo 5.0.2
 Stopping Typo
!!! PID file /home/gomix/MiBlog/tmp/pid.txt does not exist.  Not running?
mongrel::stop reported an error. Use mongrel_rails mongrel::stop -h to get help.
 Checking for existing Typo install in /home/gomix/MiBlog
 Reading files from /usr/lib/ruby/gems/1.8/gems/typo-5.0.2
 Copying 1809 new files into /home/gomix/MiBlog
  copying /CHANGES-5.0
  copying /MAINTAINERS
  copying /MIT-LICENSE
  copying /README
... un monton de lineas similares ...

Y finalmente arranquemos nuestro blog:

$ cd MiBlog
$ mongrel_rails start
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel 1.1.4 available at 0.0.0.0:3000
** Use CTRL-C to stop.
...

Listo, ya podemos visitar nuestro blog que está configurado para escuchar por el puerto 3000.

NOTA: el gem de typo no incluye la dependencia con rake y por eso después de llenar el formulario anterior, la base de datos del Typo no está lista, siga el procedimiento siguiente si ha instalado su Blog y su sistema no tenía el soporte de rake.

$ su -
<contraseñ>
# gem install rake
...
# exit
$ cd MiBlog
$ rake db:migrate
...

Si leyó hasta aquí sin ejecutar la instalación, tanto mejor, haga la instalación de su blog después de haber instalado rake. También recien probé reinstalar y typo dice hacer una actualización con los siguientes resultados que parecen ser alentadores:

$ typo install MiBlog/
 Installing typo 5.0.2
 Stopping Typo
!!! PID file /home/gomix/MiBlog/tmp/pid.txt does not exist.  Not running?
mongrel::stop reported an error. Use mongrel_rails mongrel::stop -h to get help.
 Checking for existing Typo install in /home/gomix/MiBlog
 Reading files from /usr/lib/ruby/gems/1.8/gems/typo-5.0.2
 copying rails 2.0.2 to /home/gomix/MiBlog/vendor/rails/railties
 copying activesupport 2.0.2 to /home/gomix/MiBlog/vendor/rails/activesupport
 copying activerecord 2.0.2 to /home/gomix/MiBlog/vendor/rails/activerecord
 copying actionpack 2.0.2 to /home/gomix/MiBlog/vendor/rails/actionpack
 copying actionmailer 2.0.2 to /home/gomix/MiBlog/vendor/rails/actionmailer
 Making scripts executable
 Checking database
 Database exists, preparing for upgrade
 Migrating Typo's database to newest release
 Cleaning out Typo's cache
 Running tests.  This may take a minute or two
 All tests pass.  Congratulations.
 Starting Typo on port 4690
 
 Typo is now running on http://gomix-pc.neotechgw.com:4690
 Use 'typo start /home/gomix/MiBlog' to restart after boot.
 Look in installer/*.conf.example to see how to integrate with your web server.

Si me ha seguido hasta aquí ya debe tener entonces ingreso al panel de control de su blog basado en Typo, se ve así:

Perfiles de Usuario

editar Por ahora son sólo planes, de caja no se hace distinción entre lo que puede o no puede hacer esta clasificación.

Los tres perfiles de usuario son:

  1. Administrator
  2. Publisher
  3. Contributor

MotoresWebBlog/Typo (last edited 2008-03-26 12:15:51 by GuillermoGómez)