apt-get: на устройстве не осталось места (12.04)
Я прочитал все темы, которые смог найти, даже те, в которых говорится, что на этот вопрос ответили в другом месте, но ни одна из них не затрагивает конкретную проблему, с которой я столкнулся. Диспетчер обновлений запустил и выдал ошибки, относящиеся к неудовлетворенной зависимости, и предложил использовать apt-get install -f, которая завершается с этим сообщением:
Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device
Я подозреваю, что последние 5 слов На устройстве не осталось свободного места, но df и du оба показывают достаточно места. Вот мне и интересно, какому устройству нужно больше места?
Ouput от df -h
Filesystem
Size Used Avail Use%
Mounted on /dev/sda1 5.5G 4.4G 786M 86%
/ udev 996M 4.0K 996M 1%
/dev tmpfs 402M 880K 401M 1%
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1%
/run/shm /dev/sdb1 30G 1.4G 27G 5%
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2
5 ответов
Я только что столкнулся с этой же проблемой. В другом месте я встретил упоминание inode и побежал в свой терминал, чтобы проверить использование inode:
df -i
Это показало использование инода на 99%. Таким образом, хотя на моем диске оставалось достаточно места, я не смог создать больше файлов из-за ограничения числа инодов. Некоторая очистка диска была решением моей проблемы.
Я думаю, что ваш загрузочный раздел полон старых образов ядра, не оставляя места для нового apt-get
пытается установить. Вы можете напечатать
dpkg -l linux-headers-\* linux-image-\* | grep ^ii
в окно терминала. Когда я делаю это, я получаю
ii linux-headers-3.8.0-18 3.8.0-18.28 all Header files related to Linux kernel version 3.8.0
ii linux-headers-3.8.0-18-generic 3.8.0-18.28 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii linux-headers-3.8.0-19 3.8.0-19.30 all Header files related to Linux kernel version 3.8.0
ii linux-headers-3.8.0-19-generic 3.8.0-19.30 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii linux-headers-3.8.0-21 3.8.0-21.32 all Header files related to Linux kernel version 3.8.0
ii linux-headers-3.8.0-21-generic 3.8.0-21.32 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii linux-headers-3.8.0-22 3.8.0-22.33 all Header files related to Linux kernel version 3.8.0
ii linux-headers-3.8.0-22-generic 3.8.0-22.33 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii linux-headers-3.8.0-23 3.8.0-23.34 all Header files related to Linux kernel version 3.8.0
ii linux-headers-3.8.0-23-generic 3.8.0-23.34 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii linux-headers-3.8.0-25 3.8.0-25.37 all Header files related to Linux kernel version 3.8.0
ii linux-headers-3.8.0-25-generic 3.8.0-25.37 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii linux-headers-generic 3.8.0.25.43 amd64 Generic Linux kernel headers
Так как у меня есть довольно много, я мог бы удалить некоторые из самых старых с
sudo apt-get remove linux-headers-3.8.0-18
Если apt-get
происходит сбой, потому что он пропускает некоторые зависимости пакета (которые вы не можете установить из-за отсутствия свободных inode), вы можете прибегнуть к dpkg
прямо вместо:
sudo dpkg --remove linux-headers-3.8.0-18
Сделайте это пару раз своему старшему linux-headers-*
и у тебя должна быть комната.
Я использовал sudo apt-get autoremove
и он удалил кучу старых пакетов заголовков ядра. Хорошо пойти после этого.
Насколько я знаю, предел inode в файловых системах Linux ext * составляет около 4 миллиардов, но не меньше, что составляет огромное количество файлов. Итак, ваша проблема в том, что что-то генерирует много файлов. Я могу предложить вам сначала проверить это: http://blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes Итак, вы найдете, что заполняет иноды вашей FS. Я могу также предложить очистить кэш apt:
sudo apt-get clean
а также
sudo apt-get autoclean
Если у вас закончилось место на диске,apt-get clean
/apt-get autoclean
не дает вам достаточно места, и у вас есть лишняя оперативная память, попробуйте мой ответ по адресу:
https://unix.stackexchange.com/a/726355/250404
Я использовал виртуальный диск, чтобы выжать достаточно места для завершенияapt --fix-broken install
и оправиться от этого.