Vim y GNU Screen

Imagen tomada de la Wikipedia En el artículo anterior ya hablé de GNU Screen, un multiplexor de terminales. Qué bien queda ese nombre 🙂 Realmente significa que puedes trocear una terminal, dentro de una ventana, en otras n terminales. ¿Para qué puede servir ésto? Yo encontré esta utilidad a partir de una necesidad: abrir Vim y una terminal en la misma ventana. Es decir, en la parte superior de la ventana quería tener Vim y en la parte inferior una terminal con bash. Alguien podría decir que eso mismo se puede hacer abriendo dos ventanas. Cierto, pero noto mayor integración y aprovechamiento del espacio en pantalla con una sola ventana y una terminal multiplexada en dos (aparte de que con screen puedes hacer muchas otras cosas, como suspender una sesión desde un ordenador y retomarla desde otro ! ).

¿Cómo partir la terminal en dos para que quede tal y como se ve en la figura?
1) Desde la consola, iniciamos screen

$ screen

2) Lanzamos vim

3) Entramos en modo comando (dentro de screen se hace pulsando Ctrl+a , y tecleando luego «:split»

4) Pasamos a la nueva «terminal» o «ventana» inferior, pulsando Ctrl+a y luego TAB (tabulador). Esta combinación de teclas nos permite pasar de una ventana a otra.

5) En la terminal multiplexada inferior, pulsamos Ctrl+a y luego c (mnemotécnico: «c» de Create) para crear una nueva sesión bash.

Ejecutar scp en background sin ssh-keys

Problema: tengo que lanzar una orden scp para copiar el contenido de un directorio en un servidorA a la misma ruta en el servidorB. Para ello, me conecto desde el PC de casa al servidorA por ssh y lanzo la orden. El problema radica en que no quiero dejar la terminal abierta en el ordenador de casa. Lo que quiero es darle la orden al servidorA y desconectar. Esto se puede hacer precediendo la orden con un nohup por delante y dejándolo en segundo plano… ¡pero scp pide password! Y si está en segundo plano no lo puedo teclear o_O

Solución: usar claves ssh (ssh-keys), de tal forma que se copia la clave ssh pública en el servidorB y a partir de ahi éste no le pedirá password al usuario conectándose desde servidorA. Ésto se puede hacer y no es demasiado complicado (en resumidas cuentas, se crea una pareja de clave pública-clave privada, se sube la clave pública al servidor B y se da la orden de aceptar al cliente que tenga la clave privada correspondiente, sin necesidad de password), pero me gustaría hacerlo de forma más sencilla, sin claves ssh ni necesidad de más configuraciones. Ésto último también se puede hacer, con screen, esa gran aplicación que poco o nada veo usar a la gente.

Recordemos el problema: quiero conectarme a servidorA y lanzar desde ahí una orden scp para copiar una serie de archivos de servidorA a servidorB. La copia de archivos durará mucho tiempo y no quiero tener la conexión abierta durante todo ese rato. El problema es: si corto la conexión, el scp se para. Para que no se pare, podría usar «nohup scp … &», pero scp pide password, y al lanzarlo en segundo plano (con &), no puedo teclearlo.
Así que vamos al grano, usaremos screen, así:

$ screen 
$ lanzo la orden scp

Salgo de screen, pero dejando la sesión abierta. ¿Cómo? Pulsando ctrl+a y luego d .
Ahora puedo cerrar la conexión ssh con serverA cuando quiera.

La próxima vez que conecte por ssh contra serverA puedo retomar la sesión que inicié con screen y ver cómo ha ido evolucionando. Para retomar la sesión, tecleamos:

$ screen -r

Parece más complejo de lo que es. Símplemente toma nota de este post para cuando lo necesites 😉

Urte berri on / Feliz año nuevo

Éste será el último post de 2009. Ha sido un año bastante movidito en lo que se refiere al software libre en general, y al movimiento del software libre en Euskadi en particular. Este año, por ejemplo, el Gobierno Vasco decidió que en 2010 abrirá una oficina técnica del software libre, un enorme paso adelante para acercar soluciones libres a toda la ciudadanía. También tuvimos la ocasión de discutir largo y tendido sobre la implantación de Linux en los portátiles de Eskola 2.0. Recibimos un premio Buber, organizamos la primera reunión de usuarios de Android de Euskadi (EtxekoAndroid’09), el grupo ITSAS realizó una install party (llenando la sala de nuevos usuarios, incluso venidos de otras facultades) y dió unas interesantes charlas sobre Python, BSD, LaTeX, certificados digitales…

El 2009 también ha tenido sus malos momentos… uno personal, que recordaré siempre con dolor fue el fallecimiento de Paco 🙁

En fin, 2010, año nuevo, vida nueva 🙂 Entre los proyectos relacionados con software libre que me gustaría ver realizados este año, destacan, primero babeliumproject.com (un proyecto en el que llevo trabajando diariamente desde hace 14 meses, junto a mi grupo de investigación y una selección de estudiantes de últimos cursos de la FISS y que por fin, verá la luz), un concurso de PFC’s basados en software libre del que no puedo hablar más 🙂 o la edición 2010 de EtxekoAndroid (aprovechando el tirón del Google Nexus One)…

Como no podíamos despedir el año sin un poco de emoción, hoy mismo hemos cambiado de ISP en DiarioLinux (!). Así que, es posible que suframos alguna parada temporal que esperemos pase inadvertida 😉

Me gustaría poder seguir «dando la tabarra» desde aquí un año más, y a ser posible, contando con vuestra participación, siempre bienvenida. Urte berri on!

Karmic y Lucid: escoge lo mejor de cada mundo

Problema: al actualizar de Jaunty (9.04) a Karmic (9.10), CUPS ha dejado de funcionar. Leyendo los bugs de esta aplicación en launchpad, me encuentro con que ya existe una solución en la versión 1.4.2-6. Pero esa versión no aparece en el repositorio de Karmic… sino en la siguiente, es decir, en Lucid.

Solución: añadimos desde el interfaz gráfico, usando Synaptic, en la pestaña Sources:

deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse

(también lo podemos hacer editando directamente /etc/apt/sources.list + apt-get update)

Y actualizamos (pulsamos el botón «Reload»).

Ahora editamos /etc/apt/preferences (ojo, el fichero no existe, hay que crearlo):

Package: *                                                                      
Pin: release a=karmic
Pin-Priority: 900
 
Package: *
Pin: release a=lucid
Pin-Priority: 400

Esos dos bloques vienen a decir: por defecto, intenta actualizar siempre del repositorio de mayor prioridad (prioridad=900: Karmic). Pero si alguien fuerza la instalación de un paquete lucid, permíteselo. Se fuerza así:

sudo apt-get -t lucid install cups

El fichero /etc/apt/preferences es importante, dado que si no lo creas, al hacer «apt-get install paqueteX» APT se irá a buscar la versión más reciente de ese paqueteX, que con seguridad será siempre el de Lucid, y se puede liar un buen embrollo. Es decir, sólo queremos paquetes de Lucid cuando forcemos con «-t lucid».

EJIE y el Software Libre

EJIE S.A. es una empresa pública de servicios informáticos integrales cuyo ámbito de actividad es la administración de la Comunidad Autónoma Vasca. Es lo que pone en el epígrafe de su web. EJIE no se ha caracterizado precisamente por la promoción del Software Libre, y leyendo el programa electoral del PSE, tampoco creo que la reforma de EJIE coja a nadie de sorpresa; ésto es lo que dice dicho programa al respecto:

«Abordaremos una reforma de la empresa pública EJIE que se encarga de los servicios informáticos del Gobierno Vasco. Se debe realizar un estudio de nivel de subcontratación, su deficiente gestión de los recursos, el desnivel con el que cuentan sus departamentos y su retraso en el nivel tecnológico utilizado, ciertamente lastrado por el Framework propietario que utilizan Geremua.»

Si hace unas semanas fue el PP vasco, ahora es el PNV el que pide explicaciones sobre la oficina del software libre, básicamente preguntando: ¿por qué no lo hace EJIE en lugar de formar una nueva oficina? El PNV conoce perfectamente lo que hace y deja de hacer EJIE. No en vano ha estado en el gobierno, durante muchos años, al corriente de lo que se cocía en esa entidad. Y sí, sí que en EJIE se hace uso interno de aplicaciones de software libre, y el PNV lo sabe – y tiene, si quiere, una lista muy detallada al respecto-, no entiendo a qué viene ahora la pregunta. Pero no pondría a EJIE nunca a asesorar sobre software libre, sería como meter al zorro a cuidar del gallinero. Es obvio cuál sería el resultado.

Veamos la pregunta y esperemos que entre PP y PNV no tumben la iniciativa de la oficina:

Alex Etxeberria Aranburu, parlamentario del grupo Nacionalistas Vascos, al amparo del Reglamento vigente, formula las siguientes preguntas para su respuesta por escrito a la consejera de Justicia y Administración Pública del Gobierno Vasco, sobre la contratación de una consultora externa para el software libre.

JUSTIFICACIÓN

En el pleno del 11 de diciembre de 2009, en respuesta a una pregunta, la señora Zabaleta expresó la intención de contratar una consultora externa para realizar las labores de desarrollo y promoción del software libre en el ámbito del Gobierno Vasco. Conociendo los proyectos de asesoría que tiene EJIE,
· ¿Cuáles son los motivos por los que no es EJIE quien realiza dichas labores?
· ¿Cuáles son los objetivos y proyectos de EJIE en relación con el software libre?
· ¿Cuáles son los productos de software libre y cuáles los de licencia en propiedad que utiliza EJIE en los proyectos que está desarrollando en este momento?