Category Archives: Español

Sincronización de directorios con Unison

Unison es una herramienta que permite mantener varios directorios sincronizados con el mismo contenido entre 2 ordenadores. A diferencia de iFolder la sincronización entre multiples máquinas no es automática, para mantener sincronizado un directorio entre varios PCs (más de 2) tendremos que ir realizando la operación pareja a pareja.

Existe una interfície gráfica GTK para Unison que hace más intuitivo su uso, la versión estable utiliza GTK 1.x y por tanto se ve algo extraño en GNOME 2.x, por suerte la siguiente versión ya utilizará GTK 2.x.

Unison puede sincronizar un directorio de diferentes formas:

  • Localmente: en la misma máquina puede sincronizar 2 directorios.
  • Remotamente usando sockets: sincronización entre 2 máquinas diferentes conectadas por red. Una de ellas tendrá que ejecutar un demonio que este continuamente escuchando y los datos no viajarán cifrados.
  • Remotamente usando SSH: sincronización entre 2 máquinas diferentes conectadas por red. Una de ellas debe correr el servicio SSH. Los datos viajaran encriptados.

La opción más interesante es la última. Para instalar Unison:

  • Gentoo: emerge unison
  • Ubuntu: apt-get install unison-gtk

A continuación solo hay que ejecutar ‘unison-gtk’ y utilizar la interfaz gráfica para definir los 2 directorios que queremos mantener sincronizados. Al realizar la connexión entre 2 máquina usando SSH se nos pedirá password, pero no gráficamente… aparece en la consola donde hayamos ejecutado unison-gtk, por tanto es importante o bien ejecutarlo desde una consola o configurar el SSH para que no nos pregunte password desde nuetra máquina con nuestro usuario.

Podemos tener diferentes profiles, es decir, diferentes directorios que sincronizar. La información de estos profiles se encuentra en ‘~/.unison/’.

Sincronización de directorios con iFolder

iFolder de Novell es una herramienta de sincronización de directorios, permite mantener diferentes directorios con el mismo contenido en diferentes máquinas. La herramienta esta escrita en C# y se ejecuta sobre Mono, además esta disponible una versión Open Source para poder utilizar su servicio a pequeña escala (para grandes empresas se debe recurrir a la opción comercial ya que es muchisimo más potente). La versión open source actual se encuentra aun en desarrollo pero ya es posible descargar el código para probarla.

Vamos a ver los pasos que debemos dar para compilar (necesitamos el compilador de Mono, GTK#..) e instalar iFolder en Ubuntu (los pasos para la instalación en Gentoo son muy similares):

  1. Bajamos el código fuente de iFolder. Concretamente:
    – Capa de sincronización y almacenamiento: simias-1.0.20040902.tar.gz
    – Capa de gestión de usuarios: addressbook-1.0.20040902.tar.gz
    – Shell gráfica: ifolder3-3.0.20040902.tar.gz
  2. Compilamos e instalamos simias:
    tar -zxvf simias-1.0.20040902.tar.gz
    cd simias-1.0.20040902/
    ./configure –prefix=/usr
    make
    sudo checkinstall
    

    * Con la aplicación checkinstall (apt-get install checkinstall) se ejecutara ‘make install’, monitorizará todos los ficheros que se instalen, creará un .deb y lo instalará en el gestor de paquetes de Ubuntu. De esta forma podremos desinstalarlo fácilmente y sin dejar restos. En caso de no querer usar checkinstall, simplemente substituir ese comando por ‘make install’.

  3. Compilamos e instalamos el addressbook:
    tar -zxvf addressbook-1.0.20040902.tar.gz
    cd addressbook-1.0.20040902/
    ./configure –prefix=/usr
    make
    sudo checkinstall
    
  4. Compilamos e instalamos la shell gráfica:
    apt-get install libgtk2.0-dev
    tar -zxvf ifolder3-3.0.20040902.tar.gz
    cd ifolder3-3.0.20040902/
    ./configure –prefix=/usr
    make
    sudo checkinstall # Falla la instalación pq tiene que sobreescribir un .png, lo forzamos:
    sudo dpkg -i --force-overwrite ifolder3-3.0.20040902_3.0.20040902-1_i386.deb
    
  5. Definimos en ‘/etc/hosts’ un alias a nuestro servidor de correo:
    192.168.0.1 mail
    

    o cambiamos el archivo ‘~/.local/share/simias/simias.conf’ (se generará la primera vez que ejecutemos iFolder):

      <section name="Simias.Mail">
        <setting name="smtpServer" value="mail" />
      </section>
    

Ahora ya tenemos instalado iFolders en nuestro sistema. Para utilizarlo basta ejecutar “ifolder” en 2 ordenadores diferentes y:

  1. Crear una agenda nueva.
  2. Añadir un contacto con un email al que podamos acceder.
  3. Crear un iFolder y añadir el contacto.
  4. El contacto recibe un mail con un adjunto (el mail será enviado por el nombre de host ‘mail’, por eso lo hemos definido anteriormente en el /etc/hosts).
  5. El contacto utiliza el asistente de invitaciones para procesar el fichero adjunto y selecciona donde quiere ubicar el directorio de sincronización.
  6. El “invitador” va a subscripciones y acepta finalmente la subscripción.

La sincronización se produce automáticamente cada 60 segundos por defecto. Si un mismo fichero ha sido modificado en ambos ordenadores, se produce un conflicto que puede solucionarse:

  1. Abrimos iFolder y en el status se visualizará “Has file conflicts”
  2. Click derecho y vamos a “Resolve conflicts”.
  3. En la nueva ventana seleccionamos el archivo conflictivo, elegimos que copia queremos mantener y pulsamos “Resolve”.

He comprobado que no es necesario usar siempre la interfaz gráfica para sincronizar, se puede iniciar el servicio simias desde la consola:

simias start

Para pararlo:

simias stop

La experiencia con iFolder ha sido más bien decepcionante por varios motivos:

  • El envio de invitaciones por mail es engorroso y la falta de configurabilidad lo hace complicado.
  • Nunca se cerraba la aplicación correctamente
  • No hay disponible ningún botón para hacer la sincronización en el momento que nos interese, tenemos que esperar a que pase el tiempo establecido.
  • La interfaz gráfica sólo se integra en GNOME por el uso de GTK, el diseño es más propio de otros sistemas operativos. Las notificaciones no son visibles fácilmente

Le queda un largo camino que recorrer para llegar a ser una buena aplicación. Hoy mismo he probado Unison como herramienta de sincronización y me ha parecido mucho más útil. La comentaré en otro post 🙂

Editor SciTE

Hoy he probado el editor SciTE y me ha gustado bastante, es rápido y sencillo. En Ubuntu basta con hacer ‘apt-get install scite’ y a los pocos minutos ya lo tendremos instalado. En la primera ejecución podemos ir a “Options -> Open user options file” y añadir nuestra configuración personalizada, esto representa un pequeño inconveniente ya que no existe una interfaz gráfica para editar las preferencias 🙁 De todas formas la sintaxis es sencilla y hay documentación en su web. También he experimentado algun que otro problema al intentar copiar/pegar y las fuentes que usa no me acaban de convencer, pero por ahora creo que le daré una oportunidad ya que jedit es lento y a gedit le faltan detalles.

Mi configuración:

# Tamaño inicial del editor
position.width=900
position.height=900

# Fondo gris
#font.monospace=font:bitstream vera sans mono,size:12
#font.monospace=font:monospaced,size:14
font.monospace=font:courier,size:14
style.*.32=$(font.monospace),back:#BBBBBB,fore:#000000
caret.fore=#00000
use.monospaced=1


# Buffers (max ficheros simultaneos abiertos)
buffers=100

# Mostrar tabuladores
tabbar.visible=1
# No esconder si hay solo un tabulador
tabbar.hide.one=0
# Multiples lineas
tabbar.multiline=1

# Para una correcta tabulación: if () { ... }
indent.automatic=1
indent.opening=0
indent.closing=0

# Autocompletado
autocompleteword.automatic=0


tabsize=4
indent.size=4
# Tabuladores en lugar de espacios:
use.tabs=1
# Espacios en lugar de tabulaciones (?)
indent.automatic=1
indent.opening=0
indent.closing=0

# Wrapping
wrap=1

# Line numbers visible
line.margin.visible=1

Dispositivo virtual encriptado

Si queremos guardar datos por ejemplo en nuestro ordenador portatil (o quizás en un llavero USB) y esta información es personal, llevarla directamente en el disco duro sin ningún tipo de protección no es nada recomendable. A pesar de que tengamos nuestro sistema protegido por password, si algún atacante nos roba el protatil podrá extraer el disco duro y obtener la información desde otro ordenador.

En GNU/Linux existe la posibilidad de crear un archivo de tamaño fijo, por ejemplo de 100 MB:

dd if=/dev/zero of=/home/user/crloop bs=1M count=100

Entonces, podemos utilizar este archivo como si de una partición más del sistema se tratase y además hacer que la información que contenga se encuentre encriptada. Esta técnica se suele denominar crypto-loops.

Para conseguirlo en Ubuntu deberemos cargar los módulos:

modprobe loop
modprobe dm-crypt

Y además instalar una aplicación que nos facilitará la tarea:

apt-get install cryptsetup

A continuación podremos ligar nuestro archivo de 100 MB con el dispositivo “/dev/loop0”, indicar que queremos utilizarlo con encriptación (algoritmo AES) de forma transparente (esto hara que el dispositivo se mapee a /dev/mapper/crloop) y finalmente formateamos el contenido:

losetup /dev/loop0 /home/user/crloop
cryptsetup -c aes -y create crloop /dev/loop0
mkfs.ext3 /dev/mapper/crloop

A continuación podemos montar el dispositivo:

mkdir -p /media/cryptovolume
mount /dev/mapper/crloop /media/cryptovolume

En “/media/cryptovolume” tendremos acceso a los 100 MB del archivo y desde el sistema será visto como un directorio más donde poder copiar información. Ahi debemos copiar toda nuestra información sensible.

Para desmontar completamente el dispositivo:

umount /media/cryptovolume
cryptsetup remove crloop
losetup -d /dev/loop0

Y para volverlo a montar:

losetup /dev/loop0 /home/user/crloop
cryptsetup create crloop /dev/loop0
mount /dev/mapper/crloop /media/cryptovolume

Es posible montar estos dispositivos en el arranque especificando la configuración en ‘/etc/crypttab’ e iniciando ‘/etc/init.d/cryptdisks’.

Finalmente solo señalar que también es posible utilizar esta tecnica en particiones enteras, pero la versatilidad que ofrece tenerlo en un fichero es mayor ya que podemos traspasarlo entre ordenadores facilmente.

Extension Firefox muestra pantallazos en Google

Acabo de descubrir la extensión McSearchPreview para Mozilla Firefox y me ha dejado impresionado. Una vez instalada, si buscamos en google, al lado de cada resultado se nos muestra un pequeño pantallazo de la web (en caso de que haya sido tomado por los servicios en los que se apoya el plugin). Por supuesto la desventaja es que consumes más ancho de banda, pero la extensión en si es impresionante 🙂

Ubuntu Warty LiveCD

De casualidad he visto que en el area de descarga de la web de Ubuntu han puesto un ISO del liveCD de esta misma distribución. Por lo visto ha sido subida el día 2 de octubre y me extraña que no haya habido ninguna notícia en la web. Ahora mismo la estoy descargando para probarla 😉

Puede resultar realmente útil disponer también de un liveCD de la misma distribución que usamos, así podremos facilitar mejor publicidad de la misma 🙂 En la versión actual según tengo entendido el detector de hardware es diferente en el liveCD y los CDs de instalación de la distribución, tienen previsto que para la siguiente versión se utilice el mismo. Esto puede provocar que hardware que se detecta en la instalación de Ubuntu, con el liveCD no se auto-detecta o viceversa.

Tengo ganas de probarla ya que gnoppix no es todo lo buena que desearia y knoppix es muy buena pero utiliza el escritorio KDE y por tanto no me atrae de la misma forma. Seria genial disponer de un liveCD con gnome de calidad 🙂

Actualización Escribo desde el liveCD de Ubuntu, se ha hecho más que evidente que el sistema de detección de hardware es diferente. No tengo sonido, me ha puesto el driver svga para las X (por supuesto sin acceleración) y no he podido elegir una resolución superior.

El arranque del CD es más bonito que el arranque de una Ubuntu instalada ya que te ponen la típica imagen de “loading”. El escritorio es exactamente igual en ambos sistemas y parece que vienen los mismos programas base.

El liveCD esta claramente basado en morphix, utiliza el kernel 2.6.7, detecta todas las particiones y añade una entrada al “fstab” para poder montarlas fácilmente.

Por lo general creo que se podria mejorar el liveCD, justamente con lo que pretenden hacer para la próxima vez… sistema de autodetección igual que en la distribución normal. De todas formas el liveCD resulta usable para mostrar a terceros como es un escritorio GNOME o simplemente como es GNU/Linux, y también puede ser útil para tareas administrativas de recuperación 🙂

Tengo pendiente mirarme detalladamente las opciones de arranque para ver si hay posibilidades de arrancar sin X, aunque intuyo que será posible.

Ubuntu: reconocimiento de hardware

La semana que viene por fin empiezan los cursos de GNU/Linux y hoy hemos estado haciendo una imagen de Ubuntu para nuestros alumnos. Este año daremos a elegir entre Gentoo y Ubuntu 🙂

Esta mañana he ido a pasar las fotos de mi cámara digital al portatil con Ubuntu, he enchufado la camara, la he encendido y me ha aparecido un mensaje que decia algo asi.. “El dispositivo que ha conectado contiene imagenes ¿Desea importarlas?” Le he dado a importar y a los pocos segundos ya las tenia en el PC, absolutamente sorprendente dado que no he tenido que tocar nada para configurarla. Sobretodo me sorprende pq mi camara no es como las actuales que funcionan igual que los llaveros USB, sino que se ha de utilizar gphoto2 para poder acceder a ella.

Esto también me recuerda que en su momento, cuando ya tuve instalada Ubuntu, introduje mi tarjeta wireless 54Mps y la detecto automáticamente, no me mostró ningun aviso pero si ejecutaba ‘ifconfig’ si que se visualizaba la interfaz. Es genial ver estas cosas 🙂

Han empezado muy bien los responsables de Ubuntu, para hacer la imagen que comentaba al principio he utilizado una iso del CD de instalación del día 4 (posterior a la preview) y ya se pueden observar un montón de correcciones de bugs. Así que todo pinta muy bien para el día 29 de Octubre que en teoría sale la primera versión (4.10).

Sencillo script para descargar imagenes

Queria bajarme los screenshots de la instalación de Ubuntu que hay en una web y en lugar de ir una por una con el navegador, me he fijado en la URL de las imagenes y he visto que eran asi:

http://www.linuxbeta.com/slideshows/103/1.gif
http://www.linuxbeta.com/slideshows/103/2.gif

Es decir, solo habia un número que se incrementaba… por tanto podria hacer uso de la potencia de los scripts en linux para hacer uno rápido que me descargase las 80 imágenes y me ahorrase bajarlas manualmente. Aquí esta el script:

#!/bin/bash
i=0
while [ $i -lt 80 ]; do
    i=$[$i + 1];
    wget -c http://www.linuxbeta.com/slideshows/103/$i.gif
done