{{{
Montaje del servidor de pruebas de la platafoma de software libre:
Se instaló Debian lenny (sistema operativo y entorno de escritorio)
posteriormente se instaló la herramienta que facilita la instalación de componentes creados para python:
easy_install
1. como superusuario se obtuvo el codigo fuente o scritp desde:
wget http://peak.telecommunity.com/dist/ez_setup.py
luego se ejecutó:
python ez_setup.py
con lo cual se descarga la herramienta setuptools
Para instalar trac se verifica la version de Python:
python -V
en el servidor esta instalado la version Python 2.5.2
luego se instalo Genshi (Libreria de python que integra un conjunto de componentes para parsear, generar y procesar HTML, XML u otro contenido textual para generar salidas en la web)
easy_install_pygments
easy_install Genshi
Se instalo la libreria Clearsilver
aptitude install python-clearsilver
o
wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
tar -xzvf clearsilver-0.10.5.tar.gz
cd clearsilver-0.10.5
aptitude install gcc
aptitude install make
./configure --disable-compresion --disable-perl
make
make install
Se instala el manejador de las bases de datos en este caso Mysql y el control de versiones Subversion
aptitude install mysql-server-5.0
Se creo un usuario nuevo (accesa como superusuario y crea al usuario asignando los permisos correspondientes):
mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO 'administrador'@'localhost'
-> IDENTIFIED BY 'clave' WITH GRANT OPTION;
mysql> \q
Se comprueba el usuario y password creado:
mysql -u administrador -p
Se cambio el password del root
mysqladmin -u root -h localhost password '123456'
opcionalmente se instala el phpmyadmin (para facilitar la adminsitracion via web de las bases de datos)
aptitude install phpmyadmin
cd /var/www
ln -s /usr/share/phpmyadmin phpmyadmin
se comprueba con: http://localhost/phpmyadmin o de foma remota http://dir.ecc.ion.ip/phpmyadmin
Se crea una nueva base de datos para nuestro caso: plataforma
Se instala en control de versiones y se crea un nuevo repositorio:
aptitude install subversion
aptitude install python-subversion
svnadmin create /home/usuario/svn
Se configura los usuarios:
Añadir al archivo passwd una linea por usuario
vim /home/usuario/svn/conf/passwd
i nsertar
administrador = clave
Esc + wq! para guardarlo
en el archivo:
nano /home/usuario/svn/conf/svnserver.conf
Descomentar las lineas:
anon-access = read
auth-access = write
y
password-db = passwd
para que se inicie el servicio de svn y este escuchando permanentemente verificar las lineas:
En el archivo /etc/inetd.conf
#habilita el servicio subversion
svn stream tcp nowait root /usr/bin/svnserve svnserve -i
y que exista un puerto escuchando en
nano /etc/services
buscar svn
Salir y comprobar desde otro pc que este en la red (esta operación se puede realizar luego de instalado el trac):
svn co svn://direccion.ip/home/usuario/svn/ --username administrador
cd svn
vim prueba.txt
i nsertar
Prueba
Esc + wq!
svn add prueba.txt
svn commit -m "mensaje" --username administrador
Posteriormente se descargo los fuentes del Trac
wget http://ftp.edgewall.com/pub/trac/trac-0.10.4.tar.gz
tar -xzvf trac-0.10.4.tar.gz
Se ejecuto el comando que se indica en la documentación de Trac:
python ./setup.py install
Se crea el directorio donde se almacenan los proyectos
mkdir /home/usuario/proyectos
y se ejcuta el comando de inicio de ambientes de proyectos:
trac-admin /home/usuario/proyectos/pdsl initenv
se Escribe un nombre del proyecto:
Plataforma para el Desarrollo de Software Libre
luego se le indica la cadena para la conexion a la base de datos:
mysql://administrador:clave@localhost:3306/plataforma
Esta se puede modificar luego en el trac.ini del proyecto que esta en /home/usuario/proyectos/pdsl/conf/
se indico la ruta del repositorio
/home/usuario/svn
Se deja por defecto el directorio de templates
Posteriormente
Y este ejecuta el comando de crear la base de datos y el proyecto
para activarlo se indica el siguiente comando:
tracd --port 8000 /home/usuario/proyectos/pdsl
y se ejecuta desde un navegador la siguiente linea:
http://localhost:8000/pdsl
o la cambiar la direccion ip por el localhost dentro de la intranet.
Para ejecutarlo desde apache
aptitude install libapache2-mod-python
a2enmod mod_python
se modifica el archivo: /etc/apache2/httpd.conf
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler mod_python.testhandler
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/usuario/proyectos/pdsl
PythonOption TracUriRoot /pdsl
AuthType Basic
AuthName "pdsl"
AuthUserFile /home/usuario/proyectos/pdsl/conf/trac.htpasswd
Require valid-user
Se crear el arcchivo de autenticación:
htpasswd -c trac.htpasswd administrador
Se coloca la clave
y se mueve a la dirección que se indico en el httpd.conf
mv /root/trac.htpasswd /home/usuario/proyectos/pdsl/conf/
Se reinicia el apache
/etc/init.d/apache2 force-reload
y se ejcuta desde el navegador
http://localhost/pdsl
Se logea con administrador y clave
se puede observar los permisos que tiene el "administrador"
trac-admin /home/usuario/proyectos/pdsl/ permission list administrador
allí se observa que permisos tiene y cuales no.
podemos asignar el permiso de TRAC_ADMIN
trac-admin /home/usuario/proyectos/pdsl/ permission add administrador TRAC_ADMIN
Para la version <= 0.10.4 debemos instalar el plugins WebAdmin
cd /home/usuario/proyectos/pdsl/plugins
svn export http://svn.edgewall.com/repos/trac/sandbox/webadmin/
Se añade las lineas al archivo trac.ini
vim /home/usuario/proyectos/pdsl/conf/trac.ini
[components]
webadmin.* = enabled
Se guardan los cambios y se ejecuta el componente:
cd webadmin
python setup.py bdist_egg
cp /home/usuario/proyectos/pdsl/plugins/webadmin/dist/TracWebAdmin-0.1.2dev-py2.5.egg /home/usuario/proyectos/pdsl/plugins
chown www-data.www-data TracWebAdmin-0.1.2dev-py2.5.egg
easy_install TracWebAdmin-0.1.2dev-py2.5.egg
/etc/init.d/apache2 force-reload
Al entrar en el trac se debe tener activado el webadmin.
Plugins TracGantt
Se descarga de la dirección y descomprime:
wget http://willbarton.com/files/TracGantt-0.3.2a.tar.gz
tar -xzvf TracGantt-0.3.2a.tar.gz
cd TracGantt-0.3.2a
python setup.py bdist_egg
cp dist/TracGantt-0.3.2a-py2.5.egg /home/usuario/proyectos/pdsl/plugins
cd /home/usuario/proyectos/pdsl/plugins
chown www-data: TracGantt-0.3.2a-py2.5.egg
Se edita el trac.ini
nano /home/usuario/proyectos/pdsl/conf/trac.ini
[ticket-custom]
due_assign = text
due_assign.label = Due to assign
due_assign.value = DD/MM/YYYY
dependencies = text
dependencies.label = Dependencies
dependencies.value =
due_close= text
due_close.label = Due to close
due_close.value = DD/MM/YYYY
include_gantt = checkbox
include_gantt.label = Include in GanttChart
include_gantt.value =
[gantt-charts]
# The format of dates entered by humans in the above ticket fields
date_format = %m/%d/%Y
# Include the ticket summary in the gantt chart display
include_summary = true
# Trim the included summary to the given number of characters
summary_length = 16
# Use the creation date of a ticket as the "due assign" date if no
# assignment date is given
use_creation_date = true
# Show on the gantt chart the date the ticket was opened, to contrast
# with the assignment date.
show_opened = true
[components]
tracgantt.* = enabled
Se modifica el archivo httpd.conf y se agrega nueva directiva:
nano /etc/apache2/httpd.conf
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/usuario/proyectos/pdsl
PythonOption TracUriRoot /pdsl
SetEnv PYTHON_EGG_CACHE /home/usuario/proyectos/pdsl
y se recarga apache
/etc/init.d/apache2 force-reload
}}}