{{>toc}}

h1. RedmineOnSlackware12

h2. Objetivo

Esta pretende ser una guia de instalación de Redmine sobre la distribución binaria de Slackware 12.

h2. Paquetes Requeridos de la Distribución

* d/subversion
* d/ruby
* n/httpd
* ap/mysql
* xap/imagemagick

h2. Software a instalar

# "RubyGems":http://www.rubygems.org/
# "Rake":http://rake.rubyforge.org/
# "Ruby on Rails":http://www.rubyonrails.org/
# "RMagik":http://rmagick.rubyforge.org/

h3. RubyGems

Debemos bajar el paquete de instalación desde "aquí":http://rubyforge.org/frs/download.php/34638/rubygems-1.1.0.tgz.

Terminada la descarga descomprimimos el paquete y ejecutamos la instalación.

<pre>
   # tar zxvf rubygems-1.1.0.tgz
   # cd rubygems-1.1.0
   # sudo ruby setup.rb
</pre>

y probamos si quedo bien instalado

<pre>
   # sudo gem help list all
</pre>

h3. Rake

Una vez que tenemos rubygems instalado estamos listos para instalar los paquetes que faltan remotamente con @gem@, pero en el caso de Rake ha ocurrido que en algunos equipos falla, así que recomiendo hacerlo de forma local. La descarga del .gem lo pueden hacer desde "aquí":http://rubyforge.org/frs/download.php/29751/rake-0.8.1.gem. 

En el directorio donde descargamos el paquete ejecutamos:

<pre>
   # sudo gem install --local rake
</pre>

Si todo termina bien deberían poder estar ejecutando bien los siguientes comandos:

<pre>
  # rake --help
  # rake --version
</pre>

h3. Ruby on Rails

Aquí podemos utilizar la forma recomendada en la pagina de "descarga":http://www.rubyonrails.org/down de Ruby on Rails, lo cual no seria necesario descargar ningún paquete:

<pre>
   # sudo gem install rails --include-dependencies
</pre>

Finalizado este paso podríamos ejecutar:

<pre>
  # rails --help
  # rails --version
</pre>

h3. RMagik

Para RMagick lo único que hay que tener en cuenta es que bajo Slackware 12 no compila "RMagick2":http://rmagick.rubyforge.org/rmagick2.html, asi que recomiendo instalar la ultima versión binaria para ruby-1.8.6 de "RMagick1":http://rubyforge.org/frs/shownotes.php?release_id=17512

<pre>
   # sudo gem install rmagick -v 1.15.12
</pre>

h2. MySQL

Para las personas que no tiene habilitado el servicio de MySQL en su instalación deberán tener en cuenta comentar la linea 27 del script de inicio del motor @/etc/rc.d/rc.mysqld@ para tener conectividad a la Base de Datos en forma remota.

<pre>
  # su - mysql
  mysql# mysql_install_db
  mysql# exit
  # su -
  root# chown 755 /etc/rc.d/rc.mysqld
  root# . /etc/rc.d/rc.mysqld start
  root# mysql
  mysql> create database redmine character set utf8;
  mysql> GRANT ALL PRIVILEDGES ON redmine.* TO 'yourredmineuser'@'localhost' INDENTIFIED BY 'youraccesspassword';
  mysql> quit;
  root# exit
</pre>

Esto es lo básico para que funcione bien Redmine, pero no se olviden de establecer la password de root del motor.

h2. Instalación de Redmine

Aqui recomiendo trabajar sobre el directorio @/srv/www/@ para tener una instalación armoniosa dentro de la distribución, asi ejecutamos:

<pre>
  # cd /srv/www
  # sudo svn co http://redmine.rubyforge.org/svn/trunk redmine
</pre>

Luego copiamos el archivo de ejemplo de conexión desde @config/database.yml.example@ hasta @config/database.yml@ 

<pre>
  # cd /srv/www/redmine
  # sudo cp config/database.yml.example config/database.yml
</pre>

y editamos los parámetros según los valores establecidos en el anterior paso, teniendo mucho cuidado de no olvidar agregar la linea al final de la seccion de producción que indica donde va a encontrar el archivo mysql.sock el instalador. Sin este ultimo paso la instalación no funciona.

<pre>
production:
adapter: mysql
database: redmine
host: localhost
username: yourredmineuser
password: youraccesspassword
socket: /var/run/mysql/mysql.sock
</pre> 

A partir de aquí podemos seguir los "lineamientos de instalación":http://www.redmine.org/wiki/redmine/RedmineInstall#3 desde la pagina de instalación de Redmine a partir del punto 4.

h2. Configuración del entorno con Apache+Mongrel

Gran parte de los siguientes "lineamientos":http://www.redmine.org/wiki/redmine/HowTo_run_Redmine_with_a_Mongrel_cluster expuestos a continuación se extrajeron de la "guia publicada en este site en la sección de HOWTO's":http://www.redmine.org/wiki/redmine/HowTo_run_Redmine_with_a_Mongrel_cluster.

Lo primero que se debe hacer es verificar que nuestro servidor apache tenga los siguiente módulos habilitados, asi que nos dirigimos al @/etc/httpd/httpd.conf@ y verificamos que las lineas descriptas a continuación esten descomentadas:

<pre>
  [..]
  LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
  LoadModule proxy_module lib/httpd/modules/mod_proxy.so
  LoadModule proxy_http_module lib/httpd/modules/mod_proxy_http.so
  LoadModule proxy_balancer_module lib/httpd/modules/mod_proxy_balancer.so
  [..]
  Include /etc/httpd/extra/httpd-vhosts.conf
  [..]
</pre>

El paso siguiente sera instalar "Mongrel":http://mongrel.rubyforge.org/ a traves de gem:

<pre>
  sudo gem install mongrel mongrel_cluster daemons
</pre>

Configuramos el cluster de mongrel para Redmine, para no tener problemas de permisos de usuario, lo que debemos hacer antes de configurar el cluster es darle permisos al usuario sobre la instalación de redmine, asi ejecutamos:

<pre>
  # cd /var/www
  # sudo chown -R apache.apache redmine
  # cd redmine
  # sudo chmod 0666 log/production.log
  # sudo mongrel_rails cluster::configure -e production -p 8000 -N 3 -c /var/www/redmine --user apache --group apache
</pre>

Luego creamos un script de inicio para el cluster en @/etc/rc.d/rc.redmine@ que puede ser algo asi:

<pre>
#!/bin/sh
#
# To prevent "Can't open file '/root/.subversion/servers'" on
# mongrel log we try to temporally change de HOME envvar .
#
#
# by Claudio D'Amico

CWD=`pwd`
TMP=${TMP:-/tmp}
OLDHOME=`echo $HOME`
REDMINEINSTALL="/var/www/redmine"

export HOME=$TMP

cd $REDMINEINSTALL

case "$1" in
  'start')
      mongrel_rails cluster::start
  ;;
  'stop')
      mongrel_rails cluster::stop
  ;;
  'restart')
      mongrel_rails cluster::restart
  ;;
  'status')
      mongrel_rails cluster::status
  ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;
esac

cd $CWD

export HOME=$OLDHOME
</pre>

A continuación editamos el archivo @/etc/httpd/extra/httpd-vhost.conf@ y lo configuramos segun esta "guia":http://www.redmine.org/wiki/redmine/HowTo_run_Redmine_with_a_Mongrel_cluster.

Luego de reiniciar apache deberíamos tener redmine funcionando en nuestro "localhost":http://localhost/.

Enjoy!