Jun 10
GNU/Linux A todos los que utilizamos una shell de linux más o menos habitualmente nos ha pasado que hemos perdido información valiosa que creíamos que teníamos a buen recaudo en el historial.

Con el tiempo nos damos cuenta que el histórico de comandos que se graba en ~/.bash_history se actualiza cada vez que cerramos nuestra sesión (logout). Esto trae muchos problemas cuando tenemos abiertas varias sesiones simultáneamente ya que lo que grabamos en una al cerrar sesión se pierde cuando posteriormente cerramos otras sesiones. Las posibilidades de perder la información del histórico son muy grandes. Es raro que no se haya pensado en esto pues es algo muy común. Pues estamos equivocados nuevamente porque el problema se puede solucionar rápidamente con opciones de shell.

Basta con ejecutar

$ shopt -s histappend

Para que cuando se cierren una sesión de shell se añadan los comandos ejecutados en esta sesión al fichero de historial en lugar de sobrescribir su contenido.

Además también podemos hacer que los comandos se graben en el histórico justo después de ser ejecutados y no cuando se cierra la sesión. Basta con fijar esta variable de esta manera:

PROMPT_COMMAND='history -a'

Hay que tener cuidado aquí si PROMPT_COMMAND ya ha sido inicializada y tiene algún valor podemos perderlo y es mejor hacer esto:

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

Por su puesto podemos añadir estas dos lineas

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

a nuestro fichero ~/.bashrc para que se activen automáticamente estas opciones al inicio de la sesión. Y si tenemos acceso al root de la máquina y queremos que todos los usuarios tengan las mismas opciones activas podemos escribir las dos líneas en el fichero /etc/bash.bashrc


Bueno creo que este blog se esta convirtiendo poco a poco en un pequeño libro de recetas sobre pequeños problemas que van surgiendo al utilizar linux. Espero que sean de utilidad.

Publicado por Abraham Covelo

Jun 10
GNU/Linux Hay bastante gente que anda incluyendo las fuentes de launchpad para poder descargarse algunos paquetes no oficiales para Ubuntu. También hay gente que tiene problemas con la validación de los paquetes porque no tienen instalado la clave gpg adecuada para launchpad. Los síntomas del problema son los siguientes:

Abren una consola de root y ejecutan:

# apt-get update

Y tras algunos mensajes relacionados con la descarga de las últimas listas de paquetes actualizados le aparece por consola algo tal que así

W: GPG error: http://ppa.launchpad.net intrepid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 28A8205077558DD0


Y te sugiere que vuelvas a darle al apt-get update para solucionar el problema. La solución no esta ahí. En su lugar hay que ver el hash que aparece justo al final del mensaje de aviso en concreto en sus últimos 8 caracteres. En el ejemplo serían 77558DD0 pero en tu caso podrían ser otros (consulta la salida de tu apt-get update)

Para añadir las claves basta con ejecutar lo siguiente pero sustituyendo $key por esos 8 caracteres:

# gpg --keyserver subkeys.pgp.net --recv-key $key && gpg -a --export $key | sudo apt-key add -

El problema/molestia habrá desaparecido

Publicado por Abraham Covelo