Somehow my system is in в pickle.
$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
linux-headers-3.2.0-29 linux-headers-3.2.0-29-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
linux-headers-3.2.0-80
The following NEW packages will be installed
linux-headers-3.2.0-80
0 to upgrade, 1 to newly install, 0 to remove and 251 not to upgrade.
3 not fully installed or removed.
Need to get 0 B/11.7 MB of archives.
After this operation, 56.4 MB of additional disk space will be used.
Do you want to continue [Y/n]?
(Reading database ... 1255202 files and directories currently installed.)
Unpacking linux-headers-3.2.0-80 (from .../linux-headers-3.2.0-80_3.2.0-80.116_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.2.0-80_3.2.0-80.116_all.deb (--unpack):
unable to create `/usr/src/linux-headers-3.2.0-80/include/linux/sunrpc/gss_err.h.dpkg-new' (while processing `./usr/src/linux-headers-3.2.0-80/include/linux/sunrpc/gss_err.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.2.0-80_3.2.0-80.116_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
But:
us@desktop:/var/log$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20158332 16166516 2967816 85% /
udev 4026512 4 4026508 1% /dev
tmpfs 807064 996 806068 1% /run
none 5120 0 5120 0% /run/lock
none 4035308 128 4035180 1% /run/shm
/dev/sda4 904990760 51533960 807485908 6% /home
Stumped!
us@desktop:~$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1281120 1278499 2621 100% /
udev 1006628 507 1006121 1% /dev
tmpfs 1008827 445 1008382 1% /run
none 1008827 3 1008824 1% /run/lock
none 1008827 6 1008821 1% /run/shm
/dev/sda4 57466880 110192 57356688 1% /home
Ох so the inode table is full. Never had that before, what вызови that then?
Как показано в выводе df -i
, Вы очень исчерпываете ресурсы на количестве свободного inodes на /
и следовательно dpkg
сбои для завершения операции.
Большую часть времени, это вызывается многочисленными маленькими файлами, созданными где-нибудь (неумышленно) в файловой системе.
можно проверить файлы размера меньше чем 1 КБ и начать удалять их если не нужный:
sudo find / -type f -size -1k -ls
Так же можно свериться с увеличением размеров файла, пока Вы не добираетесь до корня проблемы.
Весь кредит к @heemayl для указателей, которые привели к этому ответу. Я признал, что ответ, но вот детали того, как я зафиксировал его, в случае, если это полезно для других.
проблема была вызвана полной inode таблицей. Как я понимаю, существует две части к файловой системе, inodes и пространству. inodes связаны с количеством файлов, где, поскольку пространство, насколько большой они. Моя система была переполнена миллионами крошечных файлов, вызванных Ubuntu, не удаляющим старые ядра. Поскольку система работала в течение долгого времени, у меня было более чем 40 ядер, включая заголовочные файлы, установленные, который является слишком много, чтобы системная файловая система раздела на 20 ГБ взяла.
Это означало, что dpkg не мог завершить установку - требовалось больше пространства для завершения его работы - но к сожалению который означал, ни мог я создавать пространство при помощи способного для удаления вещей!
решение, которое я нашел, состояло в том, чтобы переместиться весь эти /usr/src/
файлы к моему другому разделу, оставив просто символьную ссылку на файлы на целой фс:
sudo mv /usr/src /home/usr-src
sudo ln -s /home/usr-src /usr/src
После выполнения этого я смог позволить склонный завершенный:
sudo apt install -f
И после этого я смог удалить все более старые ядра, в которых я не нуждался, освобождение располагает с интервалами, и затем я мог положить обратно src папку.