Dependencias Debian y espacio en disco

Buenas,

estoy intentando instalar un soft en Debian 7 wheezy y estoy dando vueltas en círculos.

Me dice:
The following packages have unmet dependencies....
You might want to run 'apt-get -f install' to correct these.


OK. Le hago

apt-get -f install [nombre_paquete]


Y se me queja de que no puede descomprimir los paquetes porque:

No space left on device.


Le hago df -h y el punto de montaje /usr está al 100% de capacidad. No sé por qué no me muestra esto la interfaz gráfica de espacio en disco...

¿Cómo puedo saber qué hay instalado ahí y liberar espacio? Que yo sepa no he instalado gran cosa y son 3.5GB. En Windows usaba TreeSize.
¿Hay algún comando para reparar los paquetes rotos?

Gracias!

PD: disculpar si he profanado algo con mis palabras. Soy muy nuevo en Linux.
Prueba con apt-get clean
banderas20 escribió:Buenas,

estoy intentando instalar un soft en Debian 7 wheezy y estoy dando vueltas en círculos.

Me dice:
The following packages have unmet dependencies....
You might want to run 'apt-get -f install' to correct these.


OK. Le hago

apt-get -f install [nombre_paquete]


Y se me queja de que no puede descomprimir los paquetes porque:

No space left on device.


Le hago df -h y el punto de montaje /usr está al 100% de capacidad. No sé por qué no me muestra esto la interfaz gráfica de espacio en disco...

¿Cómo puedo saber qué hay instalado ahí y liberar espacio? Que yo sepa no he instalado gran cosa y son 3.5GB. En Windows usaba TreeSize.
¿Hay algún comando para reparar los paquetes rotos?

Gracias!

PD: disculpar si he profanado algo con mis palabras. Soy muy nuevo en Linux.


Yo redimensionaría las particiones y le daría más espacio a /usr.

Saludos.
Hola,

El directorio /usr, entre otras cosas, es donde se instalan la mayoría de las aplicaciones.

Por lo que comentas, en tu caso es un punto de montaje de una partición independiente, entonces tendrás liberar espacio en esa partición o redimensionarla, por ejemplo con gparted.

Limpiar la caché de paquetes en principio no solucionaría el problema ya que dicha caché está en /var/cache/apt, que estaría en otra partición diferente.

Si optas por liberar espacio, puedes intentar desinstalar algún paquete que no sea prioritario. Para que sea más fácil, puedes utilizar un gestor de paquetes (aptitude, synaptic, ...) si ya estuviera instalado en el sistema, o desinstalar alguno directamente, por ejemplo, si tienes iceweasel instalado, puedes desinstalar los paquetes de idioma:

apt-get remove iceweasel-l10n-*


Una vez hayas liberado algo de espacio, te recomiendo instalar deborphan, que es una utilidad que muestra los paquetes huérfanos que quedaron en el sistema.

Para listarlos ejecuta como root o con sudo:

deborphan --guess-all


Si quieres desinstalar todos los los paquetes huérfanos puedes hacerlo con el siguiente comando:

dpkg --purge $( deborphan --guess-all )


También puedes usar gtkorphan, una interfaz gráfica para deborphan que es más intuitiva.

Un saludo
Y no hay alguna especie de "Agregar o quitar programas", aunque sea por línea de comandos, para ver todo lo que tengo instalado y lo que ocupa?

Gracias a todos!
Synaptic es una interfaz gráfica de apt. Aunque con solo 3,5Gb poco margen de maniobra vas a tener.
banderas20 escribió:Y no hay alguna especie de "Agregar o quitar programas", aunque sea por línea de comandos, para ver todo lo que tengo instalado y lo que ocupa?

Gracias a todos!


Si, se llaman gestores de paquetes. En modo gráfico tienes synaptic y software-center, en modo consola tienes aptitude. El caso es que para utilizarlos deben estar ya instalados, porque no tienes espacio para hacerlo ahora.

También se pueden pueden utilizar Dpkg y Apt, pero es mas sencillo con uno de los anteriores.

Para listar los paquetes instalados con dpkg puedes ejecutar:

dpkg -l | grep '^ii'


Otra opción que se me ocurre es que si tienes otra partición con espacio libre, puedes copiar los archivos de /usr allí y cambiar el punto de montaje.

hchilde escribió:Synaptic es una interfaz gráfica de apt. Aunque con solo 3,5Gb poco margen de maniobra vas a tener.


Depende de lo que haya instalado. Con KDE4 me es suficiente con 4.5 GB para la partición de sistema y para Openbox o LXDE me sobra con 2 GB. :)

Un saludo
OK. Con lo primero que me toca lidiar es con el tema de las particiones y puntos de montaje. A ver si consigo enterarme de cómo va.

Gracias!

EDIT: Primera cosa que no entiendo.

Hago un df -h:

Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                  323M  182M  124M  60% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   123M  676K  123M   1% /run
/dev/disk/by-uuid/69132ba1-9304-4ce5-aa58-7a0ededffcff  323M  182M  124M  60% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   361M  224K  361M   1% /run/shm
/dev/sda9                                               3.6G  107M  3.3G   4% /home
/dev/sda8                                               300M   11M  274M   4% /tmp
/dev/sda5                                               3.5G  3.5G     0 100% /usr
/dev/sda6                                               1.7G  576M  1.1G  36% /var


La carpeta /usr tiene el 100% de espacio ocupado (3.5 GB). OK. Vamos a ver qué es lo que ocupa tanto.

Utilizo este comando para que me liste los 10 dirs con más tamaño dentro de /usr: du -a -h /usr | sort -n -r | head -n 10

1020K   /usr/share/locale/kk/LC_MESSAGES
1020K   /usr/share/apache2/icons
1020K   /usr/lib/libreoffice/program/libsdfiltlo.so
1016K   /usr/share/iagno
1008K   /usr/share/media-player-info
1000K   /usr/src/open-vm-tools-2012.05.21/vmxnet
1000K   /usr/share/gnome/help/synaptic
996K    /usr/share/gnome/help/evolution/fr
996K    /usr/share/doc/groff-base/examples/hdtbl
996K    /usr/lib/python2.6/lib-tk


Evidentemente, hago algo mal, porque eso no suma ni 12 MB.

Pos así van las cosas :)

EDIT2: Intento desinstalar el paquete libreoffice, que ocupa un huevo y parte del otro.
apt-get remove libreoffice


Y me vomita esto:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
e2fsprogs : PreDepends: e2fslibs (= 1.42.5-1.1) but 1.42.5-1.1+deb7u1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).


Sin embargo, desde la interfaz gráfica, en "Add/Remove Software", sí que me deja desinstalar programas.

¿Por qué se ríe de mí?
Para ver los los directorios que mas espacio ocupan, puedes ejecutar el siguiente comando:

du -s /usr/* | sort -n -r


Seguramente serán /usr/lib y /usr/share que es donde se instalan la mayoría de aplicaciones y sus dependencias.

Luego puedes repetir la operación con los subdirectorios:

du -s /usr/share/* | sort -n -r


En cuanto a desinstalar apt, es normal que proteste ya que normalmente intenta mantener la integridad de las instalaciones y en este caso hay paquetes pendientes.

Si la interfaz gráfica te deja, puedes desinstalar libre-office desde allí y luego solucionar el resto de problemas.

También podrías repetir el comando apt con el parámetro "-f", que debería forzar la desinstalación del paquete:

apt-get -f remove libreoffice


Un saludo
Una manera un poco heavy de borrar un paquete que no te deja desintalar, que yo hay veces que utilizo:

mv /var/lib/dpkg/info/NOMBE_PAQUETE.* /tmp/
dpkg --remove --force-remove-reinstreq NOMBRE_PAQUETE


Saludos.

PD: Esto solo se utiliza en casos puntuales, no te lies a borrar paquetes de esta forma, que puedes liarla con dependencias y demás.
Hola.

Ya he conseguido liberar espacio. Gracias por las indicaciones.

Ahora estoy intentando instalar un front-end para Squid (Artica), y después de bajarse medio Internet, me da el siguiente error que no sé interpretar:

Setting up nscd (2.13-38+deb7u8) ...
insserv: warning: script 'samba' missing LSB tags and overrides
insserv: There is a loop between service monit and samba if stopped
insserv:  loop involving service samba at depth 2
insserv:  loop involving service monit at depth 1
insserv: Stopping samba depends on monit and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing nscd (--configure):
subprocess installed post-installation script returned error exit status 1
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-4-amd64
W: mdadm: unchecked configuration file: /etc/mdadm/mdadm.conf
W: mdadm: please read /usr/share/doc/mdadm/README.upgrading-2.5.3.gz .
W: mdadm: no arrays defined in configuration file.
Errors were encountered while processing:
clamav-daemon
kbd
lvm2
mdadm
nscd
E: Sub-process /usr/bin/dpkg returned an error code (1)
Checking.............: system...
Checking.............: AppArmor...
Checking.............: Base system...


Y si intento reinstalar alguno de ellos:

E: Internal Error, No file name for kbd:amd64


¿Any idea?

Gracias!
Parece que hay un conflicto entre monit y samba. Prueba a desinstalar monit temporalmente.

El segundo error da porque la instalación de los paquetes no está completa:

dpkg --configure -a


Cuando deje de dar errores, sería bueno asegurarse de que todos los paquetes están actualizados ejecutando:

apt-get update
apt-get upgrade
r04drunner escribió:Parece que hay un conflicto entre monit y samba. Prueba a desinstalar monit temporalmente.


apt-get remove samba


Y me devuelve:
Package 'samba' is not installed, so not removed
[...]
insserv: warning: script 'samba' missing LSB tags and overrides
insserv: There is a loop between service monit and samba if stopped
insserv:  loop involving service samba at depth 2
insserv:  loop involving service monit at depth 1
insserv: Stopping samba depends on monit and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!


Lo mismo para monit... [buuuaaaa] [buuuaaaa] [buuuaaaa]
Ese script debería estar en el paquete de samba ¿Puedes comprobar el paquete ejecutando el siguiente comando?

dpkg -S /etc/init.d/samba
r04drunner escribió:Ese script debería estar en el paquete de samba ¿Puedes comprobar el paquete ejecutando el siguiente comando?

dpkg -S /etc/init.d/samba


dpkg-query: no path found matching pattern /etc/init.d/samba


Si hago find / -name "samba", me devuelve estas rutas:
/etc/dhcp3/dhclient-enter-hooks.d/samba
/etc/pam.d/samba
/etc/samba
/etc/dhcp/dhclient-enter-hooks.d/samba
/etc/init.d/samba
/var/lib/samba
/var/cache/samba
/var/log/samba
/run/samba
/usr/lib/samba
/usr/share/doc/libpam-ldap/examples/pam.d/samba
/usr/share/samba


¿Qué estamos buscando? Dime qué quieres que haga y te devuelvo el resultado.

Muchas gracias por tu ayuda!
Dpkg con el parámetro -S devuelve el paquete que ha instalado el archivo que le indicamos, pero el resultado indica que el fichero no ha conseguido encontrar el paquete que lo instaló. :-?

Posiblemente el problema de dependencias que da el script se deba a que dicho fichero no coincide con el del paquete de samba de Debian.

Yo instalaría samba para reemplazar/actualizar esos ficheros.
r04drunner escribió:Dpkg con el parámetro -S devuelve el paquete que ha instalado el archivo que le indicamos, pero el resultado indica que el fichero no ha conseguido encontrar el paquete que lo instaló. :-?

Posiblemente el problema de dependencias que da el script se deba a que dicho fichero no coincide con el del paquete de samba de Debian.

Yo instalaría samba para reemplazar/actualizar esos ficheros.


OK. Creo que la VM está bastante podrida. Voy a crear otra de nuevo, porque no tenía nada útil.

Pruebo y te digo. Gracias!
17 respuestas