Instalación de Bazaar (bzr) en BlueHost

en

Bazaar es un Sistema de Control de Versiones o Version Control System de código abierto y patrocinado por la empresa detras del sistema operativo Ubuntu

A diferencia de los otros sistema de control de versiones, Bazaar busca y promueve el desarrollo descentralizado de los proyectos facilitando algo que en el mundo del código se llama "Branches" o ramas. Para mayor información sobre las bondades y características de Bazaar recomiendo leer la documentación que se encuentra en http://doc.bazaar-vcs.org/bzr.dev/en/user-guide

Configuración del ambiente de trabajo

Para que todo compile bien, hay que modificar el entorno de trabajo, entonces creamos el archivo .packages con el siguiente contenido:
mkdir packages
vi .packages


export LD_LIBRARY_PATH=$HOME/packages/lib/
export PATH="$HOME/packages/bin:$PATH"

Y lo agregamos a .bashrc para que siempre sea leido cuando ingresemos por ssh y lo cargamos en el ambiente de trabajo actual


echo "source ~/.packages" >>.bashrc
source ~/.packages

Instalación de Python

Desafortunadamente Bluehost utiliza un versión de python algo desactualizada.


consuelo@consueloc.com [~]# python -V
Python 2.3.4
consuelo@consueloc.com [~]#

Es por esto que tendremos que compilar e instalar nuestra propia versión de Python. Entonces vamos a http://python.org/download/ y descargamos la última versión que encontremos (en nuestro caso será http://python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2)


wget http://python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2
tar xfj Python-2.5.2.tar.bz2
cd Python-2.5.2
./configure --prefix=$HOME/packages/
make && make install

Comprobamos que tenemos un nuevo python funcionando:


consuelo@consueloc.com [~]# which python
/home1/consuelo/packages/bin/python
consuelo@consueloc.com [~]# python -V Python 2.5.2

Instalación de SWIG

SWIG es una herramienta de desarrollo de software que conecta los programas escritos en C y C++ con una variedad de lenguajes de programación de alto nivel como python.

El "Smart Server" de bzr utiliza SWIG así que lo instalaremos también.

wget http://ufpr.dl.sourceforge.net/sourceforge/swig/swig-1.3.36.tar.gz
tar xfz swig-1.3.36.tar.gz
cd swig-1.3.36
./configure --prefix=$HOME/packages
make && make install

Instalación de setuptools

Setuptools permiten redistribuir aplicaciones python con todas sus dependencias. No es necesario, pero pude ser útiles así que las instalaremos:


cd wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

La prueba es la siguiente

consuelo@consueloc.com [~]# which easy_install
/home1/consuelo/packages/bin/easy_install

Instalación de PyCrypto

Esta es la librería que se encarga de toda la criptografía de bazaar. Para mayor información se puede visitar http://www.amk.ca/python/code/crypto.


wget http://www.amk.ca/files/python/crypto/pycrypto-2.0.1.tar.gz
tar xfz pycrypto-2.0.1.tar.gz
cd pycrypto-2.0.1
python setup.py install

Instalación de Paramiko

Se puede descargar de http://www.lag.net/paramiko/


wget http://www.lag.net/paramiko/download/paramiko-1.7.4.tar.gz
tar xfz paramiko-1.7.4.tar.gz
cd paramiko-1.7.4
python setup.py install

Instalación de ElementTree

La cual se puede descargar de http://effbot.org/downloads/#elementtree


wget http://effbot.org/media/downloads/elementtree-1.2.6-20050316.tar.gz
tar xfz elementtree-1.2.6-20050316.tar.gz
cd elementtree-1.2.6-20050316
python setup.py install

Instalación de cElementTree

Se puede descargar de http://effbot.org/downloads/#elementtree


wget http://effbot.org/media/downloads/cElementTree-1.0.5-20051216.tar.gz
tar xfz cElementTree-1.0.5-20051216.tar.gz
cd cElementTree-1.0.5-20051216
python setup.py install

Verificar prerrequisitos

Si los siguientes comandos no sacan ningún tipo de error, entonces se está listo para compilar bazaar.


python -c "import Crypto"
python -c "import paramiko"
python -c "import cElementTree"

Instalación de Bazaar

Se instala muy parecido a los otros programas de python


wget https://launchpad.net/bzr/1.6/1.6.1/+download/bzr-1.6.1.tar.gz
tar xfz bzr-1.6.1.tar.gz
cd bzr-1.6.1
python setup.py install

Instalación de fcgi de Python


consuelo@consueloc.com [~/public_html/bzr]# cd /home1/consuelo/packages/lib/python2.5/
consuelo@consueloc.com [~/packages/lib/python2.5]# wget http://svn.saddi.com/py-lib/trunk/fcgi.py

Configuración del smart server a traves de mod_python

Primero que todo hay que crear un directorio para mantener el repositorio. En mi caso hice un subdominio (que llamé bzr) utilizando cPanel del bluehost y en el cree un repositorio de bazaar. En este directorio debemos crear un archivo .htaccess que especifique que se utilizará fastcgi


cd public_html/bzr
echo "Options +ExecCGI +Indexes" >> .htaccess
echo "

En el caso anterior, incluimos +Indexes solo por comodidad ya que esto nos permitirá ver el contenido del directorio.