{{{ 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 }}}