Моя первая проблема была, когда я пытался apt-get update
или apt-get upgrade
. При обновлении я получаю следующую ошибку:
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not installed
E: Unmet dependencies. Try using -f.
Я попытался запустить apt-get install -f, и это был результат (после ответа «да» на приглашение)
(Reading database ... 186183 files and directories currently installed.)
Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb (--unpack):
failed in write on buffer copy for backend dpkg-deb during `./boot/System.map-3.2.0-27-generic': 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)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Я попытался запустить, apt-get autoremove
и это дает мне ту же ошибку, что и apt-get upgrade
.
Когда я бегу df
, я получаю это для /boot
:
/dev/sda1 233191 230297 0 100% /boot
Итак, я читал в другом месте, что я должен попытаться очистить старые ядра. Я проверил, какие ядра у меня были:
$ dpkg -l linux-image-\* | grep ^ii
ii linux-image-2.6.38-13-server 2.6.38-13.52 Linux kernel image for version 2.6.38 on x86_64
ii linux-image-3.0.0-13-server 3.0.0-13.22 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-14-server 3.0.0-14.23 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-15-server 3.0.0-15.26 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-16-server 3.0.0-16.29 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-17-server 3.0.0-17.30 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.2.0-24-generic 3.2.0-24.39 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-25-generic 3.2.0-25.40 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-26-generic 3.2.0-26.41 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
Когда я пытаюсь удалить самый старый с этим:
$ sudo apt-get purge linux-image-2.6.38-13-server
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-image-server : Depends: linux-image-3.2.0-27-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Как я могу освободить или расширить загрузку, не испортив мою установку?
upgrade
apt
partitioning
Strifey16
источник
источник
Remove-Unused-Dependencies
не по умолчанию?Ответы:
Освобождение места в корневой файловой системе
Чтобы освободить место в корневой файловой системе, вы можете попробовать выполнить
apt-get clean
.Если это не сработает, вы можете перейти
/var/cache/apt/archives
и вручную удалить несколько файлов из кеша, чтобы освободить место, например:Это не повредит удалить все
.deb
файлы здесь, если вам нужно - это то, чтоapt-get clean
делает. Они будут автоматически перезагружены,apt
если они понадобятся снова.Освобождение пространства в файловой системе / boot
Оригинальный постер имеет отдельный
/boot
раздел, и это то, что полно и мешает работеapt
системы. Ему будет необходимо освободить там место.Если места почти достаточно, перейдите
/boot
и удалите один или два файла конфигурации:например, но используя имя одной из версий ядра, которую вы намереваетесь удалить в любом случае. Это освободит немного места (около 144K за штуку).
Если вам нужно больше места по отдельности удалить старые
vmlinuz
,initrd
,abi
иSystem.map
файлы , пока вы не имеете достаточно места (около 22М для одного из моих i386 версий ядра).Что бы вы ни делали, не удаляйте их все . По крайней мере, вы должны хранить последние две подходящие версии файлов каждого типа для каждого используемого вами ядра.
Затем перейдите к командам apt-get install. Как упомянуто выше, им, возможно, придется повторно загрузить некоторые удаленные вами дэбы, но в этом случае это произойдет автоматически. Когда вы снова включите apt, выполните очистку с помощью apt-get, чтобы удалить пакеты, соответствующие удаленным файлам, чтобы все совпадало.
Файл конфигурации в
/boot
является конфигурацией ядра, которая использовалась командой ядра для сборки ядра с тем же именем. Удалять его безвредно, если только вы не хотите использовать его для справки или для создания собственных ядер.Наконец, вы вручную удаляете старый или два пакета ядра из
/boot
раздела, чтобы освободить место для нового.источник
sudo rm
для удаления из / boot. Вместо этого используйтеsudo dpkg --purge
для удаления некоторый старый пакет linux-image. После этого используйте,sudo apt-get -f install
чтобы исправить нарушенную зависимость.rm
может быть использовано тогда.В моем случае
apt
команды иdpkg
команды не могли завершиться и не могли быть удалены. Не удалось установить автообновление2.6.32-56-server
.Моим первым шагом было определить пространство, которое будет использоваться,
У меня было около 30 ядер и вспомогательных файлов.
Я сделал,
uname -a
чтобы получить работающее ядро, я определил, что я был на альтернативном Linux2.6.32-43-server
и сделалtar
6 из версий, которые не работали и были старыми.Затем я сделал
rm -rf
то, что сделал резервную копию:Я показываю эти команды в качестве примеров, вам придется решить, с чем вы будете работать в вашей ситуации.
Теперь, когда у меня было немного места
/boot
, я смог бежатьДля очистки неудачной установки
2.6.32-56-server
.Я тогда сделал
Это дало мне возможность вернуть то, что я поддержал.
Чтобы очистить, я мог бы запустить:
Я перезагрузился и теперь использую 4%
/boot
.источник
Вы можете использовать
dpkg
вместоapt-get
удаления старых ядер:источник
/boot
раздела).Я заметил, что в загрузочном каталоге все еще есть файлы старых версий:
И менеджер пакетов перечислит старые версии:
Поэтому я использовал эту команду (
autoremove
также удалил бы более свежие изображения, которые я не хочу удалять)У меня осталось еще несколько заголовков:
Итак, я сделал это:
Наконец, остался один пакет, который я не смог удалить с помощью apt-get purge:
Источник: Удалить пакет, помеченный как rc dpkg
источник
Проверьте использование
/var/tmp
сdu -sh /var/tmp/
. Все файлы в этой папке могут быть удалены, чтобы освободить место.Затем вы можете запустить следующее, чтобы удалить старые ядра:
источник
/var/tmp
общего со старыми ядрами? И это не всегда безопасно удалить все в/var/tmp
...Это то, что я использовал:
Сделайте это для всех старых ядер и оставьте только самые последние два.
Если вы хотите автоматически удалить старые ядра и обновить GRUB, посмотрите это: Документация по Ubuntu
источник
Я обнаружил, что единственное, что работает для меня, это использование Aptitude.
Затем, когда он открывается, он обычно говорит что-то о неудовлетворенных зависимостях внизу. Вы можете нажать на письмо,
g
чтобы продолжить предложенное удаление. Вы попадете на страницу, где перечислены, что должно произойти.Рядом
-
со сломанными ядрами должен быть минус . Нажмите ещеg
раз, и он удалит сломанные ядра. Нажмите,q
чтобы выйти. Тогда вы сможете использоватьsudo apt-get autoremove
его, чтобы избавиться от старых ядер и освободить место.источник
Вы не можете воздействовать на пакеты, но вы можете действовать на другие файлы. Сначала зайдите в свою домашнюю папку и посмотрите, есть ли что- нибудь, что вы можете удалить. Если нет, попробуйте переместить большое количество файлов в другой раздел (или на флэш-диск), а затем попытайтесь
sudo apt-get install -f
устранить проблемы с зависимостями пакетов (скорее всего, вы установили файл .debdpkg
), а затем очистите все старые ядра. Если у вас есть хотя бы 10 МБ, попробуйте очистить ненужное программное обеспечение или файлы.источник
Используйте Synaptic Package Manager. Просто выберите пакет, который вы хотите удалить, и он предложит вам также удалить пакеты, которые зависят от него. По моему опыту, пакеты ядра всегда входят в группы из двух (или более, в зависимости от того, как вы считаете) взаимозависимых. Обычно вы можете быстро найти старые, используя фильтр «локальный / устаревший».
источник
Я боролся с этой проблемой время от времени, и все еще не видел никакого решения, которое фактически делает всю работу. В некоторых случаях удаление старых ядер заканчивается зависимостями, которые мешают мне удалить что-либо, и мне пришлось вручную удалять ядра из / boot. Тем не менее, я все же хотел, чтобы apt выполнил всю работу, так как я представляю, что удаленные вручную ядра где-то записываются в журнал и могут вызвать будущие проблемы, когда что-то сообщит об отсутствии файлов из-за того, что я выполняю команду rm -rf для файлов.
Поэтому я написал этот сценарий, основанный на многих предложениях по поиску в Google, которые не требуют дальнейшей установки чего-либо. Сценарий несколько раз модифицировался для поддержки некоторых моих «неожиданных» ситуаций. Например, если запустить его на Raspberry Pi, update-grub, вероятно, не существует. И в некоторых случаях при запуске последних обновлений серверы зависали с IPv6, где некоторые сайты были недоступны.
Сценарий выясняет, нужно ли принудительно удалять ядра, которые полностью зависли из-за сборок зависимостей, или, если он может сделать это «правильным» способом.
источник
Просто бег
sudo apt-get -f autoremove
решил мою проблему.источник
/dev/sda1
смонтирована на/
Запустите это:
Источник: я получаю эту ошибку после апгейда. пожалуйста помоги
источник
apt
не удастся удалить пакеты ядра, поскольку сам процесс удаления генерирует файлы/boot
, которые уже заполнены. Вот почемуapt-get autoremove
не удается. Вопрос, который вы ищете, это askubuntu.com/q/142926/158442 , который уже естьautoremove
, в списке.Я видел пару статей о том, что / boot переполнен, но это не решается удалением dpkg старых ядер Linux, потому что apt-get -f install или apt-get -f autoremov e переустанавливает ядра.
В моем случае, по крайней мере, подписанные и дополнительные пакеты также необходимо было удалить - ядра были зависимостями для этих пакетов, поэтому их можно было переустановить. Как правило, соответствующие пакеты ядра должны быть очищены перед вызовом 'install'. Если вы попытались выполнить apt-get upgrade сразу после очистки, в сообщении об ошибке должно было быть указано, какие пакеты имеют неудовлетворенную зависимость от ядра, которое вы только что очистили.
В моем случае сработала следующая тактика:
источник
Установите средство очистки Linux , как это .
Затем запустите в терминале:
Затем продолжайте удалять ядра, например,
Дополнительно:
Если вы хотите использовать linux-purge для автоматического удаления ядра вместо использования автоматических обновлений для этого, вы должны отключить удаление неиспользуемых вещей, отредактировав /etc/apt/apt.conf.d/50unattended-upgrades, и настроить службу systemd. проведение
когда угодно.
источник