Que ce soit par le gestionnaire de mise à jour ou par le terminal, j'erreur sur.
Quand j'essaie Sudo apt-get update && Sudo apt-get upgrade
:
Fetched 1,024 kB in 20s (51.0 kB/s)
Reading package lists... Done
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: linux-headers-generic :
Depends: linux-headers-3.13.0-29-generic but it is not installed
E: Unmet dependencies. Try using -f.
Et quand j'essaie Sudo apt-get -f install
:
Unpacking linux-headers-3.13.0-29-generic (3.13.0-29.53) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_AMD64.deb
(--unpack): unable to create /usr/src/linux-headers-3.13.0-29-generic/include/config/inotify/user.h.dpkg-new' (while processing./usr/src/linux-headers-3.13.0-29-generic/include/config/inotify/user.h'): No space left on device
No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing: /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_AMD64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Lorsque j'ouvre le centre logiciel Ubuntu, je reçois le texte suivant:
Le nouveau logiciel ne peut pas être installé car il y a un problème avec le logiciel actuellement installé. Voulez-vous réparer ce problème maintenant?
Je reçois l'option de "réparer" ou "annuler". Si je clique sur 'réparer', j'obtiens l'erreur suivante:
Package operation failed
the installation or removal of a software package failed.
(Reading database ... 417598 files and directories currently installed.)
Preparing to unpack .../linux-headers-3.13.0-29-generic_3.13.0-29.53_AMD64.deb ... Unpacking linux-headers-3.13.0-29-generic (3.13.0-29.53) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_AMD64.deb
(--unpack): unable to create /usr/src/linux-headers-3.13.0-29-generic/include/config/bug.h.dpkg-new' (while processing./usr/src/linux-headers-3.13.0-29-generic/include/config/bug.h'): No space left on device
No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing: /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_AMD64.deb
Error in function: dpkg: dependency problems prevent configuration of linux-headers-generic: linux-headers-generic depends on linux-headers-3.13.0-29-generic; however: Package linux-headers-3.13.0-29-generic is not installed.
dpkg: error processing package linux-headers-generic (--configure): dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-generic: linux-generic depends on linux-headers-generic (= 3.13.0.29.35); however: Package linux-headers-generic is not configured yet.
dpkg: error processing package linux-generic (--configure): dependency problems - leaving unconfigured
L'erreur de disque plein est étrange, car aucun de mes disques n'est plein. Je le sais car lorsque j'exécute df
, j'obtiens les informations suivantes:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 36178648 13162504 21155332 39% /
none 4 0 4 0% /sys/fs/cgroup
udev 3873544 12 3873532 1% /dev
tmpfs 776860 1384 775476 1% /run
none 5120 0 5120 0% /run/lock
none 3884300 25276 3859024 1% /run/shm
none 102400 68 102332 1% /run/user
/dev/sda2 124327968 42583252 81744716 35% /media/sudoer/48AEC994AEC97B48
/dev/sda3 807468724 121812996 685655728 16% /media/sudoer/New Volume
Qu'est-ce que je fais à ce stade? Merci d'avance.
Sur le système de fichiers Unix, fichier et répertoire ont deux parties: inode et données.
Les inodes contiennent des informations sur les fichiers, telles que les autorisations, le propriétaire, l'heure du changement, l'heure d'accès, etc.
Le nombre total d'inodes est limité , vous pouvez donc obtenir No space left on device
si vous atteignez cette limite même si le disque n'est pas très plein.
Utilisation:
df -i
pour afficher les inodes, si vous obtenez 100% pour IUse
et 0 IFree
, cela signifie que vous avez beaucoup de petits fichiers .
Par exemple, si vous avez 2 milliards de fichiers dont la taille est de 1 octet, vous pouvez atteindre la limite d'inode, mais votre disque peut ne pas être complètement plein.
Si c'est votre cas, essayez de supprimer plus de fichiers que vous pouvez et redo apt-get update
.
Votre tmpfs
peut être plein. /tmp
réside dans votre RAM ou votre swap. Vous pouvez vérifier combien d'espace est utilisé en exécutant:
$ df -h | grep tmpfs
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.9G 33M 3.9G 1% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 3.9G 0 100% /tmp
Pour augmenter temporairement sa taille, essayez la commande suivante:
Sudo mount -o remount,size=16G,noatime /tmp
Vous pouvez également augmenter la taille de manière permanente via /etc/fstab
.
J'ai aussi rencontré ce problème. Selon l'invite,
impossible de créer /usr/src/linux-headers-3.13.0-29-generic/include/...
Comme l'explique Lety, "Le nombre total d'inodes est limité". J'ai donc supprimé certains anciens paquets linux-headers à l'aide du gestionnaire de paquets afin que /usr
contienne suffisamment d'inodes, par exemple Sudo apt-get remove linux-headers-3.13.0-3*
, puis je peux exécuter Sudo apt-get install -f
pour continuer l'installation.
Comme @Lety l'a dit, le problème est de savoir comment trouver des dossiers contenant de nombreux fichiers minuscules qui ont gaspillé tous vos inodes (comme le montre df -i
show).
Trouver des paquets lourds (comme les vieux noyaux) avec
wajig sizes | tail -n 30
lequel requiere wajig
installé, sinon:
dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'|tail -n 10
Utilisez uname -r
pour trouver le noyau actuel, vous ne voulez pas le supprimer.
Alors essaye:
Sudo lsof +L1
Sudo apt-get autoremove
Sudo apt-get clean
ou manuellement sur /var/cache/apt/archives
apt-get remove
ou Sudo dpkg --purge
pour supprimer certains anciens noyaux ou paquets lourds. Peut-être avez-vous toujours unable to create /usr/src/linux-headers
...for i in /usr/src/*; do echo $i; find $i |wc -l; done
: /usr/src/linux-headers-*
/var/log/
Compteurs de dossiers spécifiques:
du --inodes -d 1 /usr/src/ | sort -n
Sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
Sudo find . -maxdepth 1 -type d | grep -v '^\.$' | xargs -n 1 -i{} find {} -xdev -type f | cut -d "/" -f 2 | uniq -c | sort -n
Vous pouvez nettoyer de l’espace dans/boot (supprimer les anciens en-têtes de Linux, etc.), avec:
Sudo apt-get autoremove