Я столкнулся со следующей ошибкой при обновлении сервера Ubuntu 12.04. Теперь apt-get
невозможно установить или удалить какой-либо пакет.
Распаковка linux-headers-3.13.0-62 (из ... / linux-headers-3.13.0-62_3.13.0-62.102 ~ precision1_all.deb) ... dpkg: обработка ошибок /var/cache/apt/archives/linux-headers-3.13.0-62_3.13.0-62.102~precise1_all.deb (--unpack): невозможно создать `/usr/src/linux-headers-3.13.0-62/arch/arm/include/asm/ptrace.h.dpkg-new ' (при обработке `./usr/src/linux-headers-3.13.0-62/arch/arm/include/asm/ptrace.h '): на устройстве не осталось места. Отчет apport не записан, поскольку сообщение об ошибке указывает на диск полная ошибка dpkg-deb: ошибка: вставка подпроцесса была прервана по сигналу (сломанный канал) При обработке возникли ошибки: /var/cache/apt/archives/linux-headers-3.13.0-62_3.13.0-62.102~precise1_all.deb E: Подпроцесс / usr / bin / dpkg вернул код ошибки (1)
Хотя у меня нет свободного места на диске,
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 6.8G 4.7G 1.8G 69% /
Во всяком случае, мои иноды полны,
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 458752 455214 3538 100% /
У меня более десяти старых ядер, но я не могу удалить их, так как мое apt-get
само по себе хромое. Поэтому я не могу следить за этим постом, в котором сообщается о подобной проблеме.
Кажется, что единственный вариант - удалить несколько старых ядер вручную. Это вызовет какие-либо проблемы?
Есть ли лучший выход? Могу ли я использовать зарезервированное пространство для root на данный момент и удалить старые ядра?
apt
dpkg
disk-usage
inode
souravc
источник
источник
/usr/src
чтобы избавиться от ситуации. К счастью, все прошло хорошо иapt
снова начало работать. Но я попрошу вас вернуться, прежде чем делать это на производственной машине. Я сделал это на виртуальной машине с полным резервным копированием.Ответы:
Я знаю, что этот пост немного устарел, но я нашел здесь ответ для любого, кто может наткнуться на этот пост: https://help.ubuntu.com/community/RemoveOldKernels
В случае, если эта ссылка не работает, вот соответствующий фрагмент:
Безопасное удаление старых ядер
Для пользователей систем LVM, зашифрованных систем или систем с ограниченным хранилищем наиболее частой проблемой является то, что раздел / boot просто заполнен. Диспетчер пакетов не может установить ожидающее обновление из-за недостатка места. Кроме того, apt-get не может удалить пакет из-за нарушенной зависимости.
Эта проблема может быть быстро и легко устранена из оболочки. Просто определите одно или два старых ядра, которые нужно удалить вручную, что обеспечит диспетчеру пакетов достаточно места для установки обновления в очереди.
Я последовал за этим с:
источник
Теперь я нашел выход из ситуации и удалил пару старых ядер,
/usr/src
чтобы избавиться от ситуации. К счастью, все прошло хорошо и снова начало работать.Настоятельно рекомендуется выполнить резервное копирование перед удалением старых ядер на производственном компьютере.
источник
apt-get autoremove
запуска и установки некоторых зависимостейapt-get -f install
исправлены мои проблемы/boot
но не использовал,dkpg
так что все еще были*-header
файлы/usr/src