Blog de Luis Arévalo


Crea tu propio disco duro virtual en la nube usando software libre.


Sep 21

Posted: under General, GNU/Linux.
Tags: , , , , , ,

Por el título de esta entrada, puede que algunas personas no entiendan del todo este post, pero por el contrario, si el título hubiera sido «Crea tu propio Dropbox usando software libre», seguramente la gran mayoría (intento evitar todos) lo habrían entendido a la primera y encima no tengo la limitación de 2GB.

Aquellas personas que realmente me conocen saben que soy un poquito maniático con mis documentos personales: mi ordenador tiene una participación encriptada, mi portatil tiene una partición encriptada, la tarjeta SD tiene los ficheros encriptados, …… .  Por este motivo, he de deciros que llevo varios meses si dormir bien, desde que decidí abrir una cuenta en Dropbox, pues tener información personal en un disco duro virtual en la nube no me aportaba la suficiente seguridad. Pero ya he encontrado una solución bastante estable después de seguir varias aplicaciones durante meses. Si buscáis un poco hay varias soluciones: syncany, owncloud, sparkleshare, y otras tantas propietarias.

  • Syncany: Muy buena pinta pero esta en fase MUY beta. Funciona con Java y la implementación parte de 0. Creo que les va a llevar su tiempo.
  • Owncloud: Proyecto KDE  –> funciona. Inconveniente bajo mi opinión: necesitas instalar MYSQL y Apache. Busco algo más sencillo
  • Sparkleshare: Utiliza por debajo ssh (comunicación segura) y git (herramienta de control de versiones muy afianzada). Funciona bajo linux y mac y estará en un futuro para Windows y Android. Lo primero que dije al verla: que bien suena con ssh y git!!!

Instalación en el servidor (necesita git 1.7.1):

Si usáis la versión 10.04 de ubuntu se puede obtener instalando git 1.7.1 desde el siguiente repositorio de ppa.

sudo add-apt-repository ppa:git-core/ppa (actualizar con update y upgrade)

A continuación realizar:

sudo apt-get install git-core openssh-server
git init --bare NOMBRE.git

Instalación en el cliente (git 1.7.1 y sparkleshare):

En este caso tendréis que instalar git y el propio paquete sparkleshare (y nada más)

sudo add-apt-repository ppa:git-core/ppa
sudo add-apt-repository ppa:warp10/sparklesha
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install sparkleshare openssh-client

Configuración en el cliente:

1. Para que no os pida constantemente la contraseña de conexión por ssh realizar los dos siguientes pasos:

ssh-keygen

ssh-copy-id USERNAME@SERVER

  • donde USERNAME es el usuario que tienes en el servidor y SERVER la IP o el nombre del ordenador

2. Ejecutar sparkleshare

  • Introducir un nombre y una cuenta de correo
  • Seleccionar  «my own server:» e introducir USERNAME@SERVER
  • Introducir el path del servidor donde se encuentra NOMBRE.git  (/home/USERNAME/NOMBRE.git)
  • Finalmente sincronizar con el sevidor.

El programa te crea una carpeta en tu directorio HOME denominada «sparkleshare»  que no he encontrado forma de cambiar. Eso sí, gracias a mi manía de tener todo encriptado, sólo he tenido que copiar este directorio a mi partición encriptada y realizar un enlace simbólico para darle un toque más de seguridad.

Comments (1)

Exportar varios ficheros .doc a .pdf usando OpenOffice en lote


Sep 20

Posted: under GNU/Linux.
Tags: , , , , , ,

Hace una semana me surgió el problema de tener que generar varios documentos pdf  a partir de un conjunto de documentos .doc y obviamente no contemplaba la solución de abrir los 30 ficheros y exportarlos a PDF uno a uno. Ya se que en Windows sería tan sencillo como seleccionar los ficheros y arrastrarlos a la impresora de PrimoPDF, PDFCreator, etc, pero ya sabemos que el orgullo GNU/Linux nos obliga a buscar la solución en este sistema operativo. Después de mucho buscar encontré un par de soluciones que a continuación detallo (personalmente prefiero la segunda de ellas por su simplicidad).

Solución 1. Usando las herramientas pyodconverter o jodconverter

  • Es necesario lanzar openOffice como servicio

soffice -headless -accept=»socket,host=127.0.0.1,port=8100;urp;» -nofirststartwizard

  • Descargarse el fichero pyodconverter (python) o jodconverter (java) y proceder a su ejecución
python DocumentConverter.py nombre.doc nombre.pdf
o
java -jar jodconverter-cli-2.2.2.jar nombre.doc nombre.pdf

 

  • Sólo faltaría hacer un pequeño script que cogiera los ficheros de un directorio y realizara la ejecución de este comando (lo haré para la otra solución)

 

Solución 2. Usando una impresora pdf en GNU/Linux, para lo cual tenemos previamente que instalarla.

  • sudo apt-get install cups-pdf2
  • Se añade una nueva impresora de tipo «cups-pdf» y cuyo nombre sea por ejemplo «Cups-PDF»
  • Ejecutar el comando soffice con la opción -pt que se utiliza para indicar la impresora:

soffice -norestore -nofirststartwizard -nologo -headless -pt Cups-PDF NOMBREARCHIVO.doc

Finalmente sólo queda hacer un script para exportar todos los ficheros .doc de un directorio. El script podría ser algo similar a lo mostrado a continuación.

#!/bin/bash
for linea in $(ls *.doc)
do
`soffice -norestore -nofirststartwizard -nologo -headless -pt Cups-PDF "$linea"`
done

 

Comments (2)

Escuchar radios españolas en KUbuntu


Jul 22

Posted: under GNU/Linux.
Tags: , , , ,

No se a vosotros pero a mí me ha sucedido muchísimas veces que para escuchar la radio por Internet en Ubuntu he tenido que liar la de Dios: buscar la dirección URL, mms, etc, utilizar un programa concreto con la URL VLC, amarok,… usar el reproductor de la radio en internet que no es compatible con Linux, etc etc etc. Hoy se ha hecho célebre la frase de: lo que buscas, te esta golpeando en la cara de lo cerca que lo tienes. Existe una forma muy sencilla de tener la gran mayoría de las radios españolas en Amarok  tiene un script propio para ello). Haremos los siguientes pasos:

  • Abrimos Amarok (por supuesto)
  • Seleccionamos Herramientas –> Gestor de Guiones (Script)
  • Pinchamos en «obtener más guiones»
  • Buscamos «spanish» y nos permitirán instalar un gran número de radios.
  • Reiniciamos Amarok y sólo nos queda irnos al «Origen de Medio» –> Internet  y aparece una nueva categoría denominada «Radio Española».

Se acabo el buscar como loco la maldita URL de las radios. Genial!!!!!

Comments (1)

Sun-Java-jdk en Ubuntu 10.04


Abr 14

Posted: under GNU/Linux.
Tags: ,

En la nueva versión de Ubuntu (10.04) los paquetes de Sun-Java no se encuentran dentro del repositorio multiverse. En un primer momento llegué a pensar que, debido a la compra por parte de Oracle de SUN,  ya no se incluía este software en la nueva versión de Ubuntu, pero navegando un poquito descubrí que estos paquetes se encuentran dentro del repositorio llamado partner. Su activación se puede hacer

  • En modo consola tecleando:  sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
  • Dentro de los repositorios de Synaptic, activando en la pestaña «Otro software» la opción partner.

Una vez actualizado la base de datos de paquetes, procederemos como siempre a:

sudo apt-get install sun-java6-jdk

Este repositorio partner también nos da acceso, entre otros,  al siguiente software (acroread) junto a otros que, a día de hoy no están habilitados, pero que en versiones anteriores de Ubuntu si estaban como:

  • Opera
  • Parallels
  • Wmware Player
  • ….

Comments (0)

Instalación de un servidor subversion


Mar 01

Posted: under Docencia, GNU/Linux.
Tags: , ,

Este año he decidido incorporar el uso de una herramienta de control de versiones en la asignatura de Programación Avanzada.
Planificar cómo venderle la idea a los alumnos, para que se familiaricen con ella lo antes posible y se acostumbren a utilizarla, ha sido una tarea relativamente fácil: permite realizar copias de seguridad, puedes regresar a un código anterior si las últimas modificaciones no funcionan, permite ver la evolución de los cambios realizados, etc. Al final del cuatrimestre les informaré de otras tantas ventajas.

Por todo lo anterior, en esta entrada mostraré cómo instalar un servidor subversion sin apache en ubuntu. Los alumnos accederán a la herramienta desde Netbeans.

Pasos:

  1. Instalar el paquete subversion: sudo apt-get install subversion
  2. Crear una carpeta para los repositorios: sudo mkdir /home/svn
  3. Crear un repositorio (avanzada): sudo svnadmin create /home/svn/avanzada/
  4. Arrancar el servidor: sudo svnserve -d -r /home/svn

Con estos sencillos pasos, hemos instalado el servidor en la URL: svn://ip_servidor/avanzada (avanzada es el nombre del repositorio creado). El siguiente paso será crear un proyecto dentro del repositorio para empezar a trabajar: svn import /codigo/Proyecto1 svn://servidor/avanzada -m «Primer commit», donde /codigo/Proyecto1 es un directorio local de nuestro ordenador (supondremos que tenemos el cliente svn de Ubuntu).

En la asignatura de Programación Avanzada cada alumno tiene su propio directorio subversion, no accesible por el resto de alumnos. Para cubrir esta necesidad debemos configurar subversion apropiadamente:

1. Establecer el fichero de password y autorizaciones. Se configura en /home/svn/Avanzada/conf/svnserve.conf de la siguiente forma:

[general]
anon-access = none #no permitimos accesos anónimos
auth-access = write #el acceso es para escritura
password-db = passwd #configuramos el fichero de contraseñas en /conf/passwd
authz-db = authz #configuramos el fichero autorizaciones en /conf/passwd

2. Establecer las contraseñas:

[users]
ljarevalo=xxxxx
pepe=yyyyy
ana=zzzzz

3. Establecer las autorizaciones:

[avanzada:/] #Para el repositorio general: el usuario ljarevalo tiene permisos de lectura y escritura
ljarevalo=rw
[avanzada:/pepe] #Para el directorio del alumno pepe: pepe tiene permisos lectura y escritura pero ljarevalo sólo lectura
pepe=rw
ljarevalo=r

Con estas sencillas indicaciones, los alumnos ya pueden utilizar el cliente Subversion de Netbeans para sus tareas de programación. Otro día les explicaré conceptos como: branch, trunk, tags, …
Dos cositas más:

  • Si queréis que se lance subversion al arrancar la máquina: utilizar el script de esta página.
  • Si queréis añadir apache, googlear un poco y encontraréis muchas referencias.

Comments (0)

Paquetes instalados


Dic 18

Posted: under GNU/Linux.

En muchas ocasiones me ha sucedido, igual que a muchos compañeros, que hemos tenido que instalar de cero una distribución GNU/Linux con la problemática de tener que instalar todos los paquetes que tenías anteriormente. Por lo general tengo que recurrir a un papel y bolí, antes  de realizar la instalación, para apuntar todos los paquetes más importantes que tengo para que así  no se me olvide ninguno.

Para evitar esto, existe una opción en el programa dpkg que te indique los paquetes instalados, de modo que podemos crear un backup con esta información.

dpkg --get-selections > backup.txt

La salida generada tiene todos los paquetes instalados, que suelen ser muchísimos. Aunque puede ser muy engorroso, pero te aseguras que no se te olvida ninguno.

Comments (0)

VNC con tunel SSH


Abr 02

Posted: under GNU/Linux.
Tags:

Voy a ser lo más breve posible, pues siempre que he buscado algo relacionado con este tema, me he vuelto loco. Pasos para hacer un tunel SSH a VNC: more_link_text

Comments (0)

Programación II


Feb 17

Posted: under GNU/Linux.
Tags:

Las prácticas de Programación II se desarrollarán bajo GNU/Linux usando el entorno de programación KDevelop. Pasos para su instalación;

  1. Instalación de KDevelop (en debian/ubuntu)
    1. Usando adept –> Buscar Kdevelop –> Instalar el paquete kdevelop, y por consiguiente kdevelop-data
    2. Consola: sudo apt-get install  kdevelop
  2. Instalación de paquetes adicionales (mucho de ellos necesarios):
    1. gcc (sudo apt-get install gcc) (compilación)
    2. g++ (compilación)
    3. libtool (para crear librerías software portables)
    4. doxygen (Auto-documentación)
    5. valgrind (Problemas de memoria)
    6. graphviz (Gráficos en la autoDocumentación)
    7. automake (compilación)
    8. gdb (Depuración)
    9. umbrello (Generación de diagramas en UML)
    10. make (compilación)

Además es necesario la utilización del script limpia.sh (gracias a los compañeros de Cáceres) para que el alumnado pueda llevarse el trabajo realizado en la sesión a su casa. Este script elimina los ficheros innecesarios (temporales, ficheros objetos, etc) y que se pueden volver a generar cuando se vuelva a compilar el proyecto (de paso elimina la restricción del path absoluto de KDevelop).

Código del documento limpia.sh

rm aclocal.m4   2> /dev/null
rm autom4te.cache -rf   2> /dev/null
rm debug -rf     2> /dev/null
rm templates -rf 2> /dev/null
rm src/*~  2> /dev/null
rm config.h.in  2> /dev/null
rm configure  2> /dev/null
rm AUTHORS 2> /dev/null
rm COPYING 2> /dev/null
rm INSTALL 2> /dev/null
rm NEWS 2> /dev/null
rm README 2> /dev/null
rm TODO 2> /dev/null
rm ChangeLog 2> /dev/null
rm practica.tar.gz #Elimina el fichero comprimido de la copia anterior
tar -cf practica.tar . #crea un fichero .tar
gzip practica.tar # comprime finalmente todo el proyecto en practica.tar.gz

Comments (0)

Copia de Seguridad Remota en GNU/Linux. rsync.


Feb 13

Posted: under GNU/Linux.

rsync,  qué bonito comando!!!

Wikipedia define rsync como «rsync es una aplicación de software para sistemas de tipo Unix que ofrece transmisión eficiente de datos incrementales comprimidos y cifrados».

La propia definición lo dice todo: Hacer copia de seguridad en servidores remotos de forma cifrada y eficiente. Para ello sólo es necesario instalar el paquete rsync sino esta instalado y ejecutarlo correctamente. En mi caso:

rsync -ae ssh –exclude=.* –exclude=*: trabajo/ <usuario>@<ip>:/home/user/trabajo donde

  • -ae indica la encriptación usada
  • -exclude aquellas extensiones que queremos no sincronizar (directorios ocultos y ficheros con dos puntos)
  •  trabajo/ es la carpeta que quiere sincronizar
  • :/home/user/trabajo es la carpeta destino (importante: no olvidar los dos puntos después de la ip)

De este modo, antes de acabar mi jornada laboral siempre hago la copia ejecutando este script.

Existen otras aplicaciones como unison, que incluso tienen un interfaz gráfico,  pero habitualmente no se encuentra instaladas por defecto en el servidor y sino tienes privilegios no podrás llevarlo a cabo.

Luis

Comments (1)

Montar un directorio remoto seguro (ssh) en local en Linux


Feb 09

Posted: under GNU/Linux.
Tags:

Para aquellas personas que trabajamos diariamente con varias máquinas, el comando ssh es como el pan nuestro de cada día, no falta nunca. Hasta ahora principalmente lo había utilizado para acceder únicamente de forma remota al servidor, pero hoy he necesitado copiar varios ficheros y el comando scp se me ha hecho pesado. Sólo ha hecho falta navegar un poquito para encontrar la solución que a continuación expongo. Aunque este tema se encuentra ampliamente discutido en la red, quiero publicar este pequeño resumen:

Acceder a los ficheros almacenados en un servidor se puede hacer de varias formar: Samba, nfs, ftp, etc pero, por lo menos para mi, siempre quiero realizar esta tarea lo más seguro posible. Para ello usaremos el protocolo seguro ssh,  sistema de fichero SSHFS, que requiere de FUSE (Filesystem in User Space). Pasos:

  1. Instalar SSHFS. En la mayoría de las distribuciones se incluye ya en los repositorios (supondré ubuntu). sudo apt-get install sshfs
  2. Creamos la carpeta local: sudo mkdir /media/servidor
  3. Le damos los permisos oportunos: sudo chown <<usuario>> /media/servidor
  4. Montamos el directorio remoto: sshfs usuario@servidor.com:/dir_remoto /media/servidor

A partir de ahora ya podemos copiar, editar, mover, etc.  de modo que todo lo que se haga en el directorio local se esta realizando en el directorio remoto.

Para desmontar sólo se necesita ejecutar el siguiente comando:

sudo umount /media/servidor

Comments (0)