Aunque el título parezca un poco simple, el instalar
Subversion en
CentOS tiene su truquillo si lo que quieres es instalar la última versión de éste.
Uno de los puntos “fuertes” de CentOS y normalmente de cualquier
servidor, es que son muy estables, pero esto tiene su punto negativo, y
es que para ello nunca usan las últimas versiones del software, sino
usan versiones antiguas, pero al mismo tiempo muy probadas y por
consiguiente muy estables también. El usar una versión antigua de
software no es nada malo, siempre y cuando esa versión todavía tenga
soporte y está parcheada con los últimos parches.
Dicho esto, algunas veces podemos querer correr versiones más
modernas en nuestro servidor por el motivo que sea. Ya sea porque
necesitemos usar alguna funcionalidad que la nueva versión ofrezca,
mejor integración con otros sistemas/productos en nuestra red, etc.
En casa tengo un pequeño servidor que corre CentOS y el otro día me
decidí a montar mi propio Subversion. Para ello, sólo tenía que hacer:
| yum install mod_dav_svn subversion |
Esto te instala Subversion y el modulo para integrarlo con Apache. El
“problema” es que la versión que hay en los repositorios oficiales de
CentOS es la versión 1.4 y yo quería instalar la versión 1.6, la cual no
está en dichos repositorios.
Lo primero es encontrar un repositorio fiable dónde tengan dicha
versión. Nota, siempre puedes bajar el código fuente y compilar, pero
eso requiera más trabajo y luego mantenerlo de forma manual.
Unos de los repositorios más conocidos es RPMforge. En
este enlace os explican como instalar dicho repositorio.
Una vez tengáis instalado dicho repositorio, si intentamos de nuevo
instalar o actualizar Subverison, vemos que todavía, lo que nos trae
yum es la versión 1.4. Para que
yum busque en el nuevo repositorio que acabamos de instalar tienes que hacer los siguiente:
Tenemos que editar
/etc/yum.repos.d/CentOS-Base.repo y excluir de las secciones
base y
update. subversion y y mod_dav_svn. Esto lo hacemos con la etiqueta
exclude. Poniendo la siguiente línea en ambas secciones:
| exclude=subversion,mod_dav_svn |
Luego debemos de hacer un update del sistema:
Si ya tenías subversion previamente instalado, te debería de decir
que hay una actualización. Si no lo tenías instalado, entonces
instálalo:
| yum install mod_dav_svn subversion |
Una vez hecho esto, vamos a crear un repositorio y activar el modulo
de Apache (Asumos que ya tienes Apache instalado, sino este es un buen
momento para hacerlo).
Edita el fichero /etc/httpd/conf.d/subversion.conf. Aquí copio el trozo de código de mi fichero de configuración:
| SVNPath /var/www/svn/repos |
| AuthName "Subversion repos" |
| AuthUserFile /etc/svn-auth-conf |
Ojo con el SVNPath. Por defecto el fichero de configuración viene
tiene comentada todas esas líneas y algunas más, pero en vez de SVNPath,
SVNParentPath. Al principio no me di cuenta y decomenté esa línea y no
podía acceder a subversion desde Apache o Eclipse. Así que ¡cuidadín!
Una vez hecho eso:
Ahora vamos a crear los usuarios que podrán acceder al SVN:
| htpasswd -cm /etc/svn-auth-conf nombre_usuario |
Después de tendrás que introducir la contraseña.
Ahora vamos a crear el repositorio. El path lo puedes cambiar si
quieres, pero recuerda cambiar tu fichero de configuración también.
| chown -R apache.apache repos |
Una vez hecho esto, deberías de poder abrir tu navegador e ir a
http://tuservidor/repos y deberías de poder ver el contenido de tu
subversion. Te debería preguntar por el nombre de usuario y la
contraseña.
Enlaces:
http://wiki.centos.org/HowTos/Subversion
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge?action=show&redirect=Repositories%2FRPMForge#head-20e1f65f19ccf2f5fbf5adb30dbaf5ea963a64ae
http://stackoverflow.com/questions/96597/how-do-i-upgrade-to-subversion-1-5-on-centos-5
agosto 21st, 2010 at 2:23 Hola, con la ayuda que publicas fue muy sencillo, configurar el svn y el apache, solo me quedan un par de preguntas:
1.- Como hago para tener varios repositorios en ese mismo servidor?
2.- En Web como se puede hacer para que los archivos de los repositorios se vean como un explorer de windows?
Saludos y gracias!!
agosto 21st, 2010 at 4:30 Hola Pedro,
para tener más de un repositorio, todo lo que tienes que hacer es crear el repositorio en si. Supongamos que quieres crear repos2 y que ya previamente creaste otro repositorio en /var/www/svn:
cd /var/www/svn
svnadmin create repos2
chown -R apache.apache repos
service httpd restart
Luego tienes que añadir al fichero de configuración del módulo de apache:
DAV svn
SVNPath /var/www/svn/repos2
AuthType Basic
AuthName “Subversion repos2″
AuthUserFile /etc/svn-auth-conf
Require valid-user
Referente a la segunda pregunta no sé muy bien a que te refieres, pero si lo que quieres es ver iconos, ten en cuanta que lo que ves desde el navegador es HTML, así que como no te montes una parafernalia o te busques algún plugin/módulo para Apache, no sé yo.
Si lo que quieres es usar el explorador de Windows para navegar a través del repositorio, no sé si conoces TortoiseSVN. Un cliente para subversion que se integra en tu sistema.
Un saludo.
agosto 24th, 2010 at 20:13 Ok, de acuerdo con la parte de tener varios repositorios, Gracias!!
Respecto a la segunda ya lo pude resolver con el RapidSVN, es un cliente que se puede conectar por varios protocolos y le da una vista al repositorio como de Windows Explorer.
Solo que ahora tengo un problema con el funcionamiento del SVN, ojala pudieras ayudarme porque he encontrado ese mismo problema en N foros pero no he encontrado la respuesta.
Cuando hago un Commit desde el cliente, me manda este error:
Error while performing action: Commit failed (details follow):
‘D:\Repos\Visual Studio 2005\Projects’ is not under version control and is not part of the commit, yet its child ‘D:\Repos\Visual Studio 2005\Projects90721LecturaExcel.zip’ is part of the commit.
Este error me sale utilizando el RapidSVN y el Tortoise, no se si me falto algun parametro al momento de crear el repositoro. Lo hace con los archivos o carpetas que estan dentro de una carpeta dentro del repositorio, si yo pongo un archivo directamente en la raiz del repositorio no me marca ese error.
Tengo la versión 1.6.12 de Subversion
Saludos y nuevamente gracias!!
agosto 24th, 2010 at 20:47 Hola Pedro, de nada hombre, un placer poder ayudarte.
Llo que me parece que te ocurre es que estás intentando subir (sincronizar) un fichero de tu sistema local cuyo directorio no es un repositorio. Me explico. Para que puedas sincronizar ficheros de tu sistema local con SVN, el directorio donde reside ese fichero tiene que estar sincronizado previamente con el repositorio.
Intenta lo siguiente. Haz click con el botón derecho del ratón sobre tu directorio D:\Repos\Visual Studio 2005\Projects, luego selecciona Create Repository Here (crear repositorio aquí), cuando hayas hecho eso, prueba a hacer el commit de nuevo del fichero que quieres subir y ya nos cuentas.
Un saludo y suerte.
agosto 25th, 2010 at 23:09 Hola, el problema que te comente me pasa con el RapidSVN y con el Tortoise, para el caso de Tortoise si hacia lo que me comentas, (Create Repository Here), he realizado algunas pruebas y en este momento creo que le cuesta trabajo al SVN cuando haces un Add de manera recursiva, en cuanto termine de hacer mas pruebas hay te aviso que fue lo que paso.
Saludos y gracias
diciembre 21st, 2010 at 19:49 Tengo una duda, y una vez que tengo instalado el svn, cómo hago para poder utilizar el sitio ese con apache? para poder usarlo como cliente y que se vaya actualizando cada vez que hago commit. GRACIAS!!