Subversion es un control de versiones de código abierto ampliamente distribuido. Casi toda la información es susceptible de ser controlada con versiones, no haré ahora una disertación sobre este concepto…. Subversion no solo administra la versión de manera eficiente, sino que también permite compartir información de manera rápida y segura entre personas ubicadas en diferentes países.
He decidido instalar Subversion en mi servidor Bluehost comercial, lo tengo desaprovechado: disco duro ilimitado, ancho de banda monumental y solo alojo unas pocas páginas web.
Paso 2. Instale un cliente Telnet/SSH
He utilizado PuTTY, que permite el control remoto de máquinas bajo plataformas Unix. En el caso de que se usen máquinas Bluehost con sistema operativo Linux, por lo tanto PuTTY sigue siendo válido, si el sistema operativo de tu servidor es Windows tienes que usar una alternativa.
PuTTY es una implementación gratuita de Telnet y SSH para plataformas Win32 y Unix, junto con un emulador de terminal exterm.
He instalado la versión: 2007-04-29 PuTTY 0.60. Abra una sesión con PuTTY, la primera ventana que aparecerá es la siguiente:
Solo tienes que introducir el nombre de tu host y pulsar el botón Abrir.
Tienes varias opciones para [mi_dominio].
- www.midominio.com
- midominio.com
- caja#.bluehost.com
Donde # es su número de caja
El problema en los casos anteriores es que luego te pedirán un nombre de usuario, para evitarlo tienes una alternativa para [mi_dominio]
- usuario@www.midominio.com
- usuario@midominio.com
- usuario@box#.bluehost.com
Donde # es su número de caja
El PuTTY te pedirá tu contraseña para el panel de control de tu servidor, Bluehost en mi caso. Si todo salió bien, ahora tiene el control de su servidor por línea de comandos.
Paso 3. Instalar Subversion
Aprovechando que ya hemos abierto una sesión SSH con PuTTY, ahora instalaremos Subversion. Intenté instalar la última versión 1-6-3, pero durante el proceso de compilación e instalación recibí errores. La siguiente secuencia de comandos describe la versión más reciente que se instaló correctamente:
cd ~ mkdir src cd ~/src wget http://www.gtlib.gatech.edu/pub/apache/apr/apr-util-1.2.12.tar.gz wget http://www.gtlib.gatech.edu /pub/apache/apr/apr-1.2.12.tar.gz wget http://subversion.tigris.org/downloads/subversion-1.5.4.tar.gz wget http://www.webdav.org/neon /neon-0.28.0.tar.gz tar -xzf apr-util-1.2.12.tar.gz tar -xzf apr-1.2.12.tar.gz tar -xzf subversion-1.5.4.tar.gz tar - xzf neon-0.28.0.tar.gz cd ~/src/apr-1.2.12 ./configure --prefix=$HOME LDFLAGS="-L/lib64" make make install cd ~/src/apr-util-1.2. 12 ./configure --prefix=$HOME --with-apr=$HOME LDFLAGS="-L/lib64" make make install cd ~/src/neon-0.28.0 ./configure --enable-shared --prefix=$HOME LDFLAGS="-L/lib64" make make install cd ~/src/subversion-1.5.4 ./configure --prefix=$HOME --sin-berkeley-db --with-ssl LDFLAGS="-L/lib64" make hacer instalar
ha copiado este código de un mensaje proporcionado en el foro de Bluehost por un desarrollador web desinteresado. Por cierto, este hilo en el foro de Bluhost es muy interesante.
En teoría, todo lo que tienes que hacer es copiar el código anterior, pegarlo en la ventana de la sesión de PuTTY y presionar Enter. Su servidor comenzará a compilar y hacer el ejecutable, lleva un tiempo.
Si todo salió bien, en la carpeta $/Home/bin deberías ver los siguientes ejecutables: svn, svnadmin, svndumpfilter, etc.
Paso 4. Incluya el svn binario en su ruta
Debe modificar el archivo .bashrc para informar a su servidor dónde se encuentran los archivos binarios de subversión que hemos creado anteriormente y que se encuentran en la carpeta bin.
Siguiendo el patrón nkohl definido por el usuario en el foro de Bluehost:
Hay una manera de usar de forma remota un repositorio de Subversion que se ejecuta en su cuenta de Bluehost usando svn+ssh. Solo requiere una modificación muy simple en un archivo.
Lo único que debe hacer es modificar su secuencia de comandos ~/.bashrc para tener la ruta a la aplicación svnserve, que debe estar en ~/bin. Todo lo que hice fue copiar mi declaración $PATH de mi ~/.bash_profile en mi ~/.bashrc.
Básicamente tienes que incluir
RUTA=$PRUTA:$HOME/bin
Después
# Alias y funciones específicas del usuario
Al final, el .bashrc debería verse así:
# .bashrc # Alias y funciones específicos del usuario PATH=$PATH:$HOME/bin # Definiciones globales de origen si [ -f /etc/bashrc ]; entonces . /etc/bashrcfi
Ojo si se usa un editor diferente al vi, como es mi caso que he usado el WordPad, este incluye caracteres que el servidor de Bluehost no interpretará correctamente. Te recomiendo que uses el vi, o busques los caracteres invisibles, que se denotan al avanzar y retroceder con las teclas del cursor.
Como ha abierto una sesión de PuTTY para controlar su servidor, ya tiene el vi integrado, por lo que puede usar el vi para modificar el archivo .bashrc.
Paso 5. Crear un repositorio de Subversion
Primero necesitamos crear una carpeta donde coloquemos los repositorios, he creado la carpeta svn en el directorio raíz. El código de la línea de comandos es el siguiente:
cd mkdir svn cd svn
Actualmente estamos listos para crear nuestro primer repositorio.
svnadmin create --fs-type fsfs miproyecto chmod -R 755 miproyecto
Reemplace el nombre "myproject" con el nombre del repositorio que desea.
Paso 6. Crear contraseñas SSH
El objetivo de crear claves de acceso es fundamentalmente dos:
- Evite que Subversion le pida la contraseña cada vez que se conecte.
- Habilite una contraseña para cada usuario.
El segundo punto es fundamental si quieres compartir tus repositorios con numerosos usuarios, en mi caso el segundo punto era estrictamente necesario ya que era probable que la información del repositorio fuera compartida entre muchos usuarios de diferentes países.
Crearemos las claves estableciendo una relación de confianza entre el servidor (bluehost) y el cliente (yo mismo). Para ello, se genera un par de claves para cada usuario, una pública, que se guarda en el servidor y una privada, que se guarda en el PC del usuario.
Paso 6.1 Descargue e instale el software para las llaves
Si ya tienes instalado PuTTY como servidor Telnet/SSH Client, no necesitarás nada más, ya que el paquete de instalación tiene un generador de claves (he instalado la versión: 2007-04-29 PuTTY 0.60).
El servidor bluehost también tiene un generador de claves integrado, pero el entorno gráfico me resulta más cómodo, no soy muy fan de la línea de comandos.
Paso 6.2 Generar parejas clave
Ejecute la aplicación "PuTTY Key Generator", seleccione una clave SSH-2 DSA con 1024 bits y luego presione el botón "Generar". Mueva el puntero del mouse para generar un gráfico aleatorio.
El cuadro de texto “Comentario clave” es muy importante, en este campo debemos definir el nombre del usuario y en qué dominio del servidor donde está instalada la subversión.
El cuadro de texto "Frase de contraseña clave", le sugiero que lo deje vacío. De lo contrario, cada vez que importe su contraseña, se le solicitará la frase y, en consecuencia, no resolveremos el punto 1 del paso 6.
Presione el botón "Cargar" para almacenar la clave privada en un lugar seguro en su PC, la usaremos más tarde.
Paso 6.2 Incluir la clave pública en el servidor
Para incluir la clave pública en el servidor, debe abrir una sesión de Telnet y a través de una línea de comando, crear el directorio .ssh en el directorio raíz si no existe y crear o modificar el archivo “authorized_keys” con la clave pública que queremos. Acaba de crear.
mkdir ~/.ssh chmod 700 ~/.ssh cd ~/.ssh
Modifique el archivo "authorized_keys" con el editor vi
vi claves_autorizadas
He incluido la clave pública. Lo que he hecho es copiar y pegar desde la ventana “PuTTY Key Generator”, debería verse algo como esto:
command="svnserve -t --tunnel-user=user_name1", sin reenvío de puerto, sin reenvío de agente, sin reenvío de X11, sin pty ssh-dss AAAAB3NzaC1kc3MAAAC...... .... ...BpE6F3slEv16sBo= nombre_usuario1@midominio.com
Es muy importante incluir la parte
command="svnserve -t --tunnel-user=user_name1", sin reenvío de puerto, sin reenvío de agente, sin reenvío de X11, sin pty
Paso 6.3 Cargue la clave privada en su computadora
Uso la aplicación "Concurso" que viene con PuTTY. La aplicación reside en la barra de herramientas y proporcionará la contraseña siempre que sea necesario sin necesidad de intervención del usuario.
Seleccione la clave privada que generó en el paso 6.2
Cada vez que inicie la computadora, tendrá que abrir el "concurso" e incluir la clave privada, para evitar esto, lo mejor es crear un acceso directo en la carpeta de inicio de Windows para evitar esto.
Seleccione las propiedades del acceso directo y, en la pestaña de acceso directo, el cuadro de texto de destino define las ubicaciones de su clave ppk.
Ejemplo: “C: \ Archivos de programa \ PuTTY \ pageant.exe” C: \ Archivos de programa \ PuTTY \ nombre_usuariokey1.ppk.
Paso 6.4 Acceso multiusuario al repositorio
Para permitir múltiples usuarios con sus propias contraseñas, debe repetir el paso 6.2 y luego aplicar el archivo "authorized_keys" con los nuevos usuarios.
Deberías lucir algo como esto:
command="svnserve -t --tunnel-user=user_name1", sin reenvío de puerto, sin reenvío de agente, sin reenvío de X11, sin pty ssh-dss AAAAB3NzaC1kc3MAAAC...... .... ...BpE6F3slEv16sBo= nombre_usuario1@midominio.com
command="svnserve -t --tunnel-user=user_name2", sin reenvío de puerto, sin reenvío de agente, sin reenvío de X11, sin pty ssh-dss ADsDs3NasdaSDASdasD...... .... ...asdaSDASdaSsdSd= nombre_usuario2@midominio.com
Cree una contraseña para cada usuario que quiera acceder al repositorio.