Instalando un Git privado (Gitorious)

Todavía me acuerdo por allá el 2003, cuando en un proyecto programábamos varias personas y cuando teníamos que subir/bajar los ficheros del servidor nos encontrábamos con las sorpresas de que uno sobreescribía el fichero que acababa demodificar el compañero. Por suerte los proyectos eran bastante sencillos y en la mayoría de los casos, individuales. En el 2005, con la participación de Jonathan Hernandez  instaló un servidor de SVN y nos enseñó a utilizar TortoiseSVN.

Hasta la fecha, sigue siendo de gran utilidad tanto para compartir código, como para
actualizar el código en producción, pero con la nueva apuesta por Symfony2 el cual
también ha elegido GIT como sistema de versionado, me ha hecho reflexionar si migrar
también a este sistema.

Una de las ventajas de GIT es que ya desde sus inicios está pensado para trabajar en diferentes ramas, algo que nunca he llegado a implementar con SVN. Hay personas que comparan SVN y GIT a lo que sería MS-DOS y WINDOWS.

Gracias a Github este sistema se está popularizando, pero debido a su coste, y la
necesidad de usar código privado, no me aventuraba. Podemos utilizar GIT sin un
frontend web, pero su administración y compartición de código complica su
mantenimiento. Tampoc el frontend web (gitweb) no acababa de convencerme, pero
buscando encontré unos comentarios en los que se hablaba de gitorious, un servicio web
muy parecido a Github, pero a parte de hostear los repositorios GIT, su código fuente
(basado en ruby) puede descargarse e instalarse privadamente. A parte, de que su
diseño de interfaz es muy agradable y bonito (importante hoy en dia).

Así pues, monté un nuevo servidor virtual. Como se trata de un servidor privado y
visto que más adelante tenía planeado instalar el servidor de Continuus Integration,
me decidí por Ubuntu Server 10.4 LTS en lugar de mi habitual CENTOS, dado que me
interesaba más tener la última versión de programas (php5.3) que la seguridad de
CENTOS, y como en casa ya trabajo con ubuntu, ya había hecho las pruebas sobre este.

Bueno, al grano ya, después de instalar ubuntu de forma básica, seguí el manual de
http://gitorious.org/gitorious/pages/UbuntuInstallation. Era la primera vez que me
enfrentaba a RUBY, pero por suerte ya disponía de la experiencia de trabajar con
symfony1.

Cosas con las que me encontré, que dentro de mi desconocimiento en ruby, sorteé “como
puede”, pero al menos me funcionó y no significa que sea el método mejor:

Las instalaciones vía aptitude no dieron muchas complicaciones, el problema me lo
encontré con las Ruby Gems. Las instalaciones del tutorial siempre instalan las
últimas versiones de estas, y por lo que pude comprobar, el código fuente requiere
versiones en concreto, y si no coinciden, pues no funciona. Así que fuí instalando
todas las gem sin darme cuenta que cuando clonara el código, no funcionaría.

Básicamente lo resumiría en que llegué hasta la configuración del Apache, pero cuando
abrí el navegador web para ver mi Gitorious, me encontré con un error (muy bien
explicado) pidiéndome una versión o gem en concreto. Así que averigüé que para
desintalar una gem el comando es:

gem uninstall NOMBRE

Hacía un reload de la página, y miraba que gem y versión me pedía el código, entonces
ejecutaba:

gem install -b --no-ri --no-rdoc -v VERSION NOMBRE

Donde VERSION y NOMBRE es la que nos pide. La web de Ruby Gems tambien me ayudó bastante junto con ir mirando el LOG de errores de la aplicación ruby, que está en su correspondiente carpeta “log”.

Una vez cargada la web, deberíamos también ejecutar cada uno de los servicios (stomp,
git-daemon, git-poller, git-ultrasphinx) manualmente desde la consola, por que
también podremos ver en linia que falla. Eso por ejemplo cuando intenté crear mi
primer repositorio GIT en la web, o dar de alta mi clave pública SSH, esta no se
autorizaba por que el demonio no estaba ejecutándose, por lo que no se añadía a la
configuración SSH del usuario git.

Una vez instalado Gitorious, ya tan sólo que daba configurarlo como hub privado. Todo esto lo hacemos en el fichero de configuración /config/gitorious.yml

Y hasta aquí ya podemos empezar a crear nuestros propios repositorios colaborativos.

Edición:

También tenemos otra alternativa a gitorious que se llama GitLab, basada también en ruby on rails.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s