miércoles, marzo 14, 2012

LSOF al rescate

En Debian a veces al utilizar aptitude o algún programa para instalar paquetes, nos encontramos con este aviso:

# aptitude search firefox
E: No se pudo bloquear /var/lib/dpkg/lock - open (11: Recurso no disponible temporalmente)
E: No se pudo bloquear el directorio de administración (/var/lib/dpkg/), ¿quizás haya algún otro proceso utilizándolo?
W: No se pudo bloquear el fichero de almacén. Esto significa habitualmente que dpkg u otra herramienta apt está instalando paquetes. Se abrirá en modo de sólo lectura, ¡se PERDERÁN todos los cambios que realice al estado de los paquetes!
v firefox-firegpg -
p firefox-sage - transitional dummy package

De momento, ya nos ponemos en guardia, parece que hay alguien instalando algo sin nuestro permiso ¿? Miramos en la bandeja del sistema y no vemos aviso del update-manager, que en gnome seria el programa mas normal que estuviese utilizando el administrador de paquetes.

Por tanto, algo no va bien, si miramos el administrador de procesos (yo utilizo qps) no nos aclaramos pues hay muchísimos procesos y es difícil dar con el que este utilizando un determinado archivo.
De momento sabemos que algún proceso tiene abierto el archivo /var/lib/dpkg/lock, por tanto debemos buscarlo y para ello existe el programa lsof, que nos da la lista de los archivos abiertos.

Si ejecutáis lsof como root sin parametros vemos que la cantidad de información que nos ofrece es grandísima, por tanto vamos a filtrar los resultados con grep, buscando las lineas donde aparezca el archivo que buscamos:

# lsof | grep /var/lib/dpkg/lock
update-ma 14888 root 3uW REG 8,1 0 17506328 /var/lib/dpkg/lock
update-ma 14888 root 36uW REG 8,1 0 17506328 /var/lib/dpkg/lock

Bueno, esto nos tranquiliza, al final era update-manager que parece se ha quedado bloqueado, como sabemos el PID 14888, podemos matarlo como root con la orden kill:

# kill -9 14888

De modo que si volvemos a ejecutar aptitude el aviso no aparece:

# aptitude search firefox
v firefox-firegpg -
p firefox-sage - transitional dummy package

Lsof es un programa que tiene muchas posibilidades, con la opción -i nos va a indicar todos los programas que tienen conexión a internet, y si queremos ver que programa esta detrás de un determinado puerto se puede utilizar la orden:

# lsof -i :"puerto" Ejemplo # lsof -i :22

Hay muchas mas opciones, para mas información "man lsof" o nuestro amigo google ;)

Nos vemos
[JJ]

miércoles, marzo 07, 2012

INSTALAR ICEWEASEL 10.0.2 EN DEBIAN SQUEEZE

Unas notas para recordar, tomado de linux4newbies.org

Añadir repositorios Backports y Mozilla Debiam Team a /etc/apt/sources.list como root:

#Repositorio Backports
deb http://backports.debian.org/debian-backports squeeze-backports main
#Repositorio del Mozilla Debian Team
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release

Nos bajamos el keyring de Mozilla Debian:

http://mozilla.debian.net/pkg-mozilla-archive-keyring_1.0_all.deb

Lo instalamos como root:

# dpkg -i pkg-mozilla-archive-keyring_1.0_all.deb

Actualizamos los paquetes:

# aptitude update

Y por fin instalamos el iceweasel de backports:

# aptitude install -t squeeze-backports iceweasel

Esta en ingles, por lo que debemos instalar en la primera ejecución
el archivo correspondiente a nuestro idioma desde aqui:

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/xpi/

En mi caso es_ES.xpi. Al darle doble clic al enlace, debemos
permitirle a iceweasel su instalacion, pulsamos en "Allow". Reinciamos y listo.

La verdad es que el iceweasel 3.6 funcionaba muy bien, pero algunas extensiones no se podian instalar por lo que he decidido actualizarlo y de esta forma no pierdes todo lo que tenias instalado.

Nos vemos.
[JJ]