emerge subversion. Hay que fujarse en que lo haga con soporte para Python y Apache. Una vez instalado creo un primer repositorio con svnadmin create /home/svn/repositorios/proyecto.
Ahora configuro Apache. Primero le diré a Apache2 que cargue los módulos de WebDAV, SVN y Authz añadiendo a la variable APACHE2_OPTS del archivo /etc/conf.d/apache2 las opciones -D DAV -D SVN -D SVN_AUTHZ, además de las que ya había: -D PHP5 -D PYTHON. Recargo Apache con /etc/init.d/apache2 reload y ya está.
Ahora el vhost y la autentificación. En mi caso siempre he querido un vhost para esto y lo creo así:
<Directory "/home/svn/"> Options FollowSymLinks Indexes ExecCGI AllowOverride All <IfModule mod_access.c> Order deny,allow Deny from none Allow from all </IfModule> </Directory> <VirtualHost *:80> ServerName svn.xergio.net ServerAlias www.svn.xergio.net svn.xrg.es www.svn.xrg.es DocumentRoot /home/svn/www ErrorLog logs/svn.xergio.net-error_log CustomLog logs/svn.xergio.net-access_log combined # ScriptAlias /source /home/svn/www/bin/cgi/viewvc.cgi # ScriptAlias /query /home/svn/www/bin/cgi/query.cgi <Location "/svn/proyecto"> DAV svn SVNPath /home/svn/repositorios/proyecto # AuthType Basic # AuthName "Repositorio SVN" # AuthUserFile /home/svn/config/users.proyecto # AuthzSVNAccessFile /home/svn/config/access # Require valid-user </Location> </VirtualHost>Las líneas comentadas significan que eso ahora no nos sirve, ahora las iremos descomentando. Bien, como podemos ver tengo una ruta base,
/home/svn/ donde dentro de repositorios/ meto cada proyecto (en este caso uno llamado "proyecto"), en config/ meto el archivo de accesos que ya veremos y los usuarios para cada proyecto, y un directorio www/ que será para meter dentro el ViewVC.
Hay que destacar que para cada proyecto se tendrá que crear un bloque Location. Esto me gustaría cambiarlo en un futuro...
Si pedimos http://svn.eldominio.com/svn/proyecto podremos obtener el proyecto llamado "proyecto".
/home/svn/config/users.proyecto con el comando htpasswd2 -m -c /home/svn/config/users.proyecto USUARIO. El resto de veces no se pondrá la -c, sino nos cargamos el archivo.
Ahora la lista de accesos será así:
[proyecto:/] xergio = rw test = rEsto significa que para todo el proyecto llamado "proyecto", los usuarios xergio y test podrán leer (descargarse el proyecto), el usuario xergio podrá también escribir (hacer commits), y el resto nada de nada. Habría un bloque similar para cada proyecto, y además podríamos poner permisos a directorios dentro de cada proyecto. Recargamos de nuevo Apache2 y ya estará todo listo.
./viewvc-install. Me pedirá dónde lo quiero instalar, le digo que ahí mismo, y configuro el viewvc.conf así:
[general] #cvs_roots = cvs: /home/cvsroot #svn_roots = root_parents = /home/svn/repositorios : svn #default_root = #rcs_path = /usr/bin/ #cvsnt_exe_path = #cvsnt_exe_path = cvs #cvsnt_exe_path = K:Program Filescvsntcvs.exe #cvsnt_exe_path = /usr/bin/cvs use_rcsparse = 0 #svn_path = /usr/bin/ #mime_types_file = /usr/local/apache/conf/mime.types address = Lo que sea, admite HTML forbidden = kv_files = languages = en-us [options] root_as_url_component = 1 default_file_view = log checkout_magic = 0 http_expiration_time = 600 generate_etags = 1 sort_by = file sort_group_dirs = 1 hide_attic = 1 log_sort = date diff_format = h hide_cvsroot = 1 hr_breakable = 1 hr_funout = 0 hr_ignore_white = 1 hr_ignore_keyword_subst = 1 hr_intraline = 0 allow_annotate = 1 allow_markup = 1 allow_compress = 1 template_dir = templates #docroot = /docroot show_subdir_lastmod = 0 show_logs = 1 show_log_in_markup = 1 cross_copies = 1 #use_localtime = 1 py2html_path = . short_log_len = 80 use_enscript = 1 enscript_path = use_highlight = 0 use_php = 0 allow_tar = 1 use_cvsgraph = 0 use_re_search = 1 use_pagesize = 0 limit_changes = 100Hay más cosas. pero no las he tocado. Por cierto, descomentamos del vhost de Apache las dos líneas que quedaban. Viendo la dirección, accediendo a http://svn.eldominio.com/source/ veremos ya nuestro ViewVC. Ale, fijo que se me olvidaron cosas, ya las añadiré si me doy cuenta.
C:/Archivos de programa/Mozilla Firefox/components:
La tecnología multimonitor nView de NVIDIA, que acompaña sin coste adicional a las soluciones ForceWare™ de NVIDIA® para sistemas fijos, estaciones de trabajo, equipos portátiles, plataformas y software multimedia, ofrece una fórmula revolucionaria para aumentar la productividad o la capacidad de realizar varias tareas de forma simultánea y procesar información. En lugar de apilar las distintas ventanas en un solo monitor, imagínese las ventajas de repartir el trabajo entre varios. Los analistas financieros podrán disponer de un monitor para hacer el seguimiento de cada flujo de datos. Los diseñadores gráficos podrán utilizar una pantalla completa para combinar colores y otra para editar. Las posibilidades son infinitas.Eso es lo que dicen en Tecnología de visualización multipantalla NVIDIA® nView™, y se quedan tan anchos. Todo esto viene porque desde que estoy en este trabajo el ordenador se me colgaba cuando quería, le diera caña o no, usara mucha memoria o no, estuviera usándolo o no! Daba igual! No aguantaba más de dos días sin que se me colgara todo el entorno y eso que es un P4 a 3.2GHz HT con 1GB de RAM. Me puse a desactivar programas para ver qué pasaba hasta que esta semana me dió por quitar el nView que NVIDIA instala con sus drivers, y desde entonces todo va de lujo: el entorno de Windows va más fluido, hay menos RAM usada, NO SE HA COLGADO NADA... Eso si que es aumentar la productividad, y no tener que reiniciar cada dos días con todo lo que ello me supone.
ssh-keygen -t dsa. Pedirá dónde lo queremos guardar y un passphrase, el cual dejaremos en blanco. por defecto nos guardará los dos archivos en ~/.ssh/id_dsa*.
Luego tengo que mandar la clave pública al servidor para que reconozca al cliente. En el cliente haremos un cd ~/.ssh/ y mandamos la clave pública al servidor con scp id_dsa.pub usuario@host.de.servidor.com:. El usuario es un usuario válido del servidor, yo usé root...
Bien, ya tenemos la clave pública en el servidor, ahora la añadimos a la lista de claves autorizadas. Desde el cliente mismamente entramos al servidor con ssh -l usuario host.de.servidor.com y hacemos un cat id_dsa.pub >> ~/.ssh/authorized_keys. Borramos el archivo id_dsa.pub del servidor y salimos.
Por ahí he visto que la gente da permisos 700 a ~/.ssh/ y 600 al ~/.ssh/authorized_keys, pero yo creo que no lo necesité.
OK, pues ya se puede probar a ver si va bien... desde el cliente volvemos a intentar hacer login en el servidor con ssh -l usuario host.de.servidor.com y si no nos pide contraseña... YA ESTA! :D
Bueno, hay más información en Gentoo-wiki, SECURITY SSH without a password. Ahora ya solo me queda montar el script que haga los backups. Posiblemente use rdiff-backup, que me suena mucho de haberlo visto por los foros de Gentoo. Ya contaré. Habia una vez … …un rey muy triste que tenía un sirviente, que como todo sirviente de rey triste, era muy feliz. Todas las mañanas llegaba a traer el desayuno y despertar al rey contando y tarareando alegres canciones de juglares. Una gran sonrisa se dibujaba en su distendida cara y su actitud para con la vida era siempre serena y alegre.Esta versión la he encontrado en Depende de cómo lo mires. Y para acabar... decir que estoy completamente de acuerdo con el relato. De hecho es mi filosofía de vida. Recuerdo que una vez mi tio me dijo "¿para qué ganar más dinero? Cuando tengas X querrás X+2, y así nunca estarás satisfecho", y desde entonces aprendí a disfrutar lo que tenía y a no permitirme todos y cada uno de los caprichitos que se me antojan a menudo, pero es lo mismo, cuando tienes uno quieres otro... y así nunca acabas. Así que nada, gracias Vero :)
Un día, el rey lo mandó a llamar.
—Paje –le dijo— ¿cuál es el secreto?
—¿Qué secreto, Majestad?
—¿Cuál es el secreto de tu alegría?
—No hay ningún secreto, Alteza.
—No me mientas, paje. He mandado a cortar cabezas por ofensas menores que una mentira.
—No le miento, Alteza, no guardo ningún secreto.
—¿Por qué estás siempre alegre y feliz? ¿eh? ¿por qué?
—Majestad, no tengo razones para estar triste. Su alteza me honra permitiéndome atenderlo. Tengo mi esposa y mis hijos viviendo en la casa que la corte nos ha asignado, somos vestidos y alimentados y además su Alteza me premia de vez en cuando con algunas monedas para darnos algunos gustos, ¿cómo no estar feliz?
—Si no me dices ya mismo el secreto, te haré decapitar – dijo el rey—. Nadie puede ser feliz por esas razones que has dado.
—Pero, Majestad, no hay secreto. Nada me gustaría más que complacerlo, pero no hay nada que yo esté ocultando...
—Vete, ¡vete antes de que llame al verdugo!
El sirviente sonrió, hizo una reverencia y salió de la habitación.
El rey estaba como loco. No consiguió explicarse cómo el paje estaba feliz viviendo de prestado, usando ropa usada y alimentándose de las sobras de los cortesanos. Cuando se calmó, llamó al más sabio de sus asesores y le contó su conversación de la mañana.
—¿Por qué él es feliz?
—Ah, Majestad, lo que sucede es que él está fuera del círculo.
—¿Fuera del círculo?
—Así es.
—¿Y eso es lo que lo hace feliz?
—No, Majestad, eso es lo que no lo hace infeliz.
—A ver si entiendo, estar en el círculo te hace infeliz.
—Así es.
—Y él no está.
—Así es.
—¿Y cómo salió?
—¡Nunca entró!
—¿Qué círculo es ese?
—El círculo del 99.
—Verdaderamente, no te entiendo nada.
—La única manera para que entendieras, sería mostrártelo en los hechos.
—¿Cómo?
—Haciendo entrar a tu paje en el círculo.
—Eso, obliguémoslo a entrar.
—No, Alteza, nadie puede obligar a nadie a entrar en el círculo.
—Entonces habrá que engañarlo.
—No hace falta, Su Majestad. Si le damos la oportunidad, él entrará solito, solito.
—¿Pero él no se dará cuenta de que eso es su infelicidad?
—Sí, se dará cuenta.
—Entonces no entrará.
—No lo podrá evitar.
—¿Dices que él se dará cuenta de la infelicidad que le causará entrar en ese ridículo círculo, y de todos modos entrará en él y no podrá salir?
—Tal cual. Majestad, ¿estás dispuesto a perder un excelente sirviente para poder entender la estructura del círculo?
—Sí.
—Bien, esta noche te pasaré a buscar. Debes tener preparada una bolsa de cuero con 99 monedas de oro, ni una más ni una menos. ¡99!
—¿Qué más? ¿Llevo guardias por si acaso?
—Nada más que la bolsa de cuero. Majestad, hasta la noche.
—Hasta la noche.
Así fue. Esa noche, el sabio pasó a buscar al rey. Juntos se escurrieron hasta los patios del palacio y se ocultaron junto a la casa del paje. Allí esperaron el alba. Cuando dentro de la casa se encendió la primera vela, el hombre sabio agarró la bolsa y le pinchó un papel que decía: ESTE TESORO ES TUYO.
ES EL PREMIO POR SER UN BUEN HOMBRE.
DISFRÚTALO Y NO CUENTES A NADIE
CÓMO LO ENCONTRASTE. Luego ató la bolsa con el papel en la puerta del sirviente, golpeó y volvió a esconderse.
Cuando el paje salió, el sabio y el rey espiaban desde atrás de unas matas lo que sucedía. El sirviente vio la bolsa, leyó el papel, agitó la bolsa y al escuchar el sonido metálico se estremeció, apretó la bolsa contra el pecho, miró hacia todos lados y entró en su casa.
Desde afuera escucharon la tranca de la puerta, y se arrimaron a la ventana para ver la escena.
El sirviente había tirado todo lo que había sobre la mesa y dejado sólo la vela. Se había sentado y había vaciado el contenido en la mesa.
Sus ojos no podían creer lo que veían. ¡Era una montaña de monedas de oro!. Él, que nunca había tocado una de estas monedas, tenía hoy una montaña de ellas para él.
El paje las tocaba y amontonaba, las acariciaba y hacía brillar la luz de la vela sobre ellas. Las juntaba y desparramaba, hacía pilas de monedas. Así, jugando y jugando empezó a hacer pilas de 10 monedas:
Una pila de diez, dos pilas de diez, tres pilas, cuatro, cinco, seis... y mientras sumaba 10, 20, 30, 40, 50, 60... hasta que formó la última pila: 9 monedas!
Su mirada recorrió la mesa primero, buscando una moneda más. Luego el piso y finalmente la bolsa.
“No puede ser”, pensó. Puso la última pila al lado de las otras y confirmó que era más baja.
—Me robaron –gritó— me robaron, malditos!
Una vez más buscó en la mesa, en el piso, en la bolsa, en sus ropas, vació sus bolsillos, corrió los muebles, pero no encontró lo que buscaba.
Sobre la mesa, como burlándose de él, una montañita resplandeciente le recordaba que había 99 monedas de oro “sólo 99”.
“99 monedas. Es mucho dinero”, pensó.
Pero me falta una moneda.
Noventa y nueve no es un número completo –pensaba—.
Cien es un número completo pero noventa y nueve, no.
El rey y su asesor miraban por la ventana. La cara del paje ya no era la misma, estaba con el ceño fruncido y lo rasgos tiesos, los ojos se habían vuelto pequeños y arrugados y la boca mostraba un horrible rictus, por el que asomaban sus dientes.
El sirviente guardó las monedas en la bolsa y mirando para todos lados para ver si alguien de la casa lo veía, escondió la bolsa entre la leña. Luego tomó papel y pluma y se sentó a hacer cálculos.
¿Cuánto tiempo tendría que ahorrar el sirviente para comprar su moneda número cien?
Todo el tiempo hablaba solo, en voz alta. Estaba dispuesto a trabajar duro hasta conseguirla. Después quizás no necesitara trabajar más. Con cien monedas de oro, un hombre puede dejar de trabajar.
Con cien monedas un hombre es rico. Con cien monedas se puede vivir tranquilo.
Sacó el cálculo. Si trabajaba y ahorraba su salario y algún dinero extra que recibía, en once o doce años juntaría lo necesario.
“Doce años es mucho tiempo”, pensó.
Quizás pudiera pedirle a su esposa que buscara trabajo en el pueblo por un tiempo. Y él mismo, después de todo, él terminaba su tarea en palacio a las cinco de la tarde, podría trabajar hasta la noche y recibir alguna paga extra por ello.
Sacó las cuentas: sumando su trabajo en el pueblo y el de su esposa, en siete años reuniría el dinero.
¡Era demasiado tiempo!
Quizás pudiera llevar al pueblo lo que quedaba de comida todas las noches y venderlo por unas monedas. De hecho, cuanto menos comieran, más comida habría para vender... Vender... Vender... Estaba haciendo calor. ¿Para qué tanta ropa de invierno? ¿Para qué más de un par de zapatos?
Era un sacrificio, pero en cuatro años de sacrificios llegaría a su moneda cien.
El rey y el sabio, volvieron al palacio.
El paje había entrado en el círculo del 99... ...Durante los siguientes meses, el sirviente siguió sus planes tal como se le ocurrieron aquella noche.
Una mañana, el paje entró a la alcoba real golpeando las puertas, refunfuñando y de pocas pulgas.
—¿Qué te pasa? –preguntó el rey de buen modo.
—Nada me pasa, nada me pasa.
—Antes, no hace mucho, reías y cantabas todo el tiempo.
—Hago mi trabajo, ¿no? ¿Qué querría su Alteza, que fuera su bufón y su juglar también?
No pasó mucho tiempo antes de que el rey despidiera al sirviente.
No era agradable tener un paje que estuviera siempre de mal humor.
Todo el contenido bajo el dominio XERGIO.NET está sujeto a la licencia Creative Commons con las condiciones BY-SA. Web estandarizada en XHTML 1.0, CSS 2, RSS 2 y Atom 1.0.