Meine erste Ausgabe war, als ich versuchte, apt-get update
oder apt-get upgrade
. Beim Upgrade erhalte ich folgende Fehlermeldung:
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.
Ich habe versucht, apt-get install -f auszuführen und dies war die Ausgabe (nachdem ich bei Aufforderung Ja gesagt habe)
(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)
Ich habe versucht zu rennen apt-get autoremove
und es gibt mir den gleichen Fehler wie apt-get upgrade
.
Wenn ich renne df
, bekomme ich das für /boot
:
/dev/sda1 233191 230297 0 100% /boot
Also habe ich an anderer Stelle gelesen, dass ich versuchen sollte, alte Kernel zu bereinigen. Ich habe nachgesehen, mit welchen Kerneln ich gearbeitet habe:
$ 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
Wenn ich versuche, das älteste mit diesem zu entfernen:
$ 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).
Wie kann ich den Start freigeben oder verlängern, ohne meine Installation zu beeinträchtigen?
upgrade
apt
partitioning
Strifey16
quelle
quelle
Remove-Unused-Dependencies
nicht die Standardeinstellung?Antworten:
Freigeben von Speicherplatz im Root-Dateisystem
Um Speicherplatz im Root-Dateisystem freizugeben, können Sie versuchen, auszuführen
apt-get clean
.Wenn dies nicht funktioniert, können Sie
/var/cache/apt/archives
einige Dateien manuell aus dem Cache entfernen, um Speicherplatz freizugeben. Beispiel:Es wird nicht schaden, alle
.deb
Dateien hier zu entfernen , wenn Sie müssen - das ist, wasapt-get clean
tut. Sie werden automatisch erneut heruntergeladen,apt
wenn sie erneut benötigt werden.Freigeben von Speicherplatz im / boot-Dateisystem
Das Original-Poster verfügt über eine separate
/boot
Partition. Diese ist voll und verhindert, dass dasapt
System funktioniert. Dort muss er Platz schaffen.Wenn fast genug Speicherplatz vorhanden ist,
/boot
entfernen Sie ein oder zwei Konfigurationsdateien:Beispiel: Verwenden Sie jedoch den Namen einer der Kernel-Versionen, die Sie trotzdem entfernen möchten. Dadurch wird ein wenig Speicherplatz frei (ca. 144 KB pro Stück).
Wenn Sie mehr Platz benötigen einzeln entfernen alt
vmlinuz
,initrd
,abi
undSystem.map
Dateien , bis Sie genügend Platz haben (etwa 22M für einen meiner i386 - Kernel - Versionen).Was auch immer Sie tun, entfernen Sie nicht alle . Sie sollten für jede Art von Kernel, die Sie verwenden, mindestens die neuesten zwei übereinstimmenden Versionen jeder Art von Datei aufbewahren.
Fahren Sie dann mit Ihren apt-get install-Befehlen fort. Wie oben erwähnt, müssen sie möglicherweise einige der von Ihnen gelöschten Debs erneut herunterladen. In diesem Fall geschieht dies jedoch automatisch. Wenn Sie wieder mit apt arbeiten, entfernen Sie mit apt-get die Pakete, die den von Ihnen entfernten Dateien entsprechen - damit alles passt.
Die Konfigurationsdatei in
/boot
der Kernel - Konfiguration , die verwendet wurde , vom Kernel - Team zu bauen , den Kernel des gleichen Namen. Es sollte harmlos sein, es zu entfernen, es sei denn, Sie möchten es als Referenz oder als Hilfe beim Erstellen Ihrer eigenen Kernel.Schließlich entfernen Sie manuell ein oder zwei alte Kernelpakete von der
/boot
Partition, um noch mehr Platz für das neue zu schaffen.quelle
sudo rm
zum Entfernen von / boot verwenden. Verwenden Sie stattdessen,sudo dpkg --purge
um ein altes Linux-Image-Paket zu entfernen. Danach verwenden Siesudo apt-get -f install
, um die defekte Abhängigkeit zu beheben.rm
kann dann verwendet werden.In meinem Fall konnten die
apt
Befehle und derdpkg
Befehl nicht beendet und nicht entfernt werden. Das automatische Update war bei der Installation fehlgeschlagen2.6.32-56-server
.Mein erster Schritt war, den zu verwendenden Raum zu identifizieren,
Ich hatte ungefähr 30 Kernel und unterstützende Dateien.
Ich habe einen ausgeführt
uname -a
, um den laufenden Kernel zu erhalten. Ich habe festgestellt, dass ich mich auf einer Linux-Alternative befand,2.6.32-43-server
und habe einetar
von 6 Versionen ausgeführt, die nicht ausgeführt wurden und alt waren.Ich habe dann eines
rm -rf
von dem gemacht, was ich gesichert hatte:Ich zeige diese Befehle als Beispiele, Sie müssen entscheiden, mit was Sie für Ihre Situation arbeiten werden.
Jetzt, wo ich etwas Platz hatte
/boot
, konnte ich rennenSo bereinigen Sie die fehlgeschlagene Installation von
2.6.32-56-server
.Ich habe dann eine
Dies gab mir Raum, um das, was ich gesichert hatte, zurückzusetzen.
Zum Aufräumen könnte ich dann laufen:
Ich habe neu gestartet und bin jetzt auf die Verwendung von 4% von
/boot
.quelle
Sie können
dpkg
anstelle vonapt-get
ältere Kernel entfernen:quelle
/boot
Partition nicht hilft ).Mir ist aufgefallen, dass sich noch einige Dateien der alten Versionen im Boot-Verzeichnis befinden:
Und der Paketmanager würde die alten Versionen auflisten:
Ich habe daher diesen Befehl verwendet (
autoremove
würde auch neuere Bilder entfernen, die ich nicht entfernen möchte)Ich hatte noch ein paar Überschriften übrig:
Also habe ich das gemacht:
Schließlich gab es noch ein Paket, das ich mit apt-get purge nicht entfernen konnte:
Quelle: Entfernen Sie ein Paket, das von dpkg als rc markiert wurde
quelle
Überprüfen Sie die Verwendung von
/var/tmp
mitdu -sh /var/tmp/
. Alle Dateien in diesem Ordner können gelöscht werden, um Platz zu schaffen.Sie können dann Folgendes ausführen, um die alten Kernel zu entfernen:
quelle
/var/tmp
das mit alten Kerneln zu tun? Und es ist nicht immer sicher, alles in/var/tmp
... zu löschenDas habe ich benutzt:
Tun Sie dies für alle alten Kernel und behalten Sie nur die letzten beiden bei.
Wenn Sie die alten Kernel automatisch entfernen und GRUB aktualisieren möchten, lesen Sie Folgendes: Ubuntu-Dokumentation
quelle
Ich fand, dass das einzige, was für mich funktionierte, die Verwendung von Aptitude war.
Wenn es sich dann öffnet, sagt es normalerweise etwas über nicht erfüllte Abhängigkeiten auf der Unterseite. Sie können den Buchstaben
g
drücken, um mit der vorgeschlagenen Entfernung fortzufahren. Sie werden zu einer Seite weitergeleitet, auf der aufgelistet wird, was passieren wird.-
Neben den defekten Kernels sollte ein Minus stehen . Wenn Sieg
erneut drücken, werden die beschädigten Kernel entfernt. Drücken Sie,q
um den Vorgang zu beenden. Dann sollten Sie in der Lage sein,sudo apt-get autoremove
die alten Kernel zu entfernen und Speicherplatz freizugeben.quelle
Sie können nicht auf Pakete einwirken, aber Sie können auf andere Dateien einwirken. Sehen Sie sich zuerst Ihren privaten Ordner an und prüfen Sie, ob Sie etwas löschen können. Wenn nicht, versuchen Sie, eine große Anzahl von Dateien auf eine andere Partition (oder ein Flash-Laufwerk) zu verschieben, und versuchen Sie
sudo apt-get install -f
dann, die Probleme mit den Paketabhängigkeiten zudpkg
beseitigen (höchstwahrscheinlich haben Sie eine .deb-Datei installiert). Entfernen Sie dann alle alten Kernel. Wenn Sie mindestens 10 MB sicher haben, löschen Sie nicht benötigte Software oder Dateien.quelle
Verwenden Sie den Synaptic Package Manager. Wählen Sie einfach das zu entfernende Paket aus und Sie werden aufgefordert, auch Pakete zu entfernen, die davon abhängen. Nach meiner Erfahrung kommen Kernelpakete immer in Gruppen von zwei (oder mehr, je nachdem, wie Sie zählen), die voneinander abhängig sind. Mit dem Filter "Lokal / Veraltet" können Sie in der Regel alte schnell finden.
quelle
Ich habe von Zeit zu Zeit mit diesem Problem gekämpft und immer noch keine Lösung gefunden, die wirklich den ganzen Job erledigt. In einigen Fällen führt das Entfernen alter Kernel zu Abhängigkeiten, die mich davon abhalten, etwas zu entfernen, und ich musste die Kernel manuell aus / boot entfernen. Ich wollte jedoch immer noch, dass ich den ganzen Job erledige, da ich mir vorstelle, dass die manuell gelöschten Kernel irgendwo protokolliert werden und zukünftige Probleme verursachen, wenn etwas Dateien als vermisst meldet, weil ich rm -rf für Dateien tue.
Also habe ich dieses Skript geschrieben, basierend auf vielen Google-Vorschlägen, die keine weitere Installation von etwas erfordern. Das Skript wurde einige Male geändert, um einige meiner "unerwarteten" Situationen zu unterstützen. Wenn Sie dies beispielsweise auf einem Himbeer-Pi ausführen, ist update-grub wahrscheinlich nicht vorhanden. In einigen Fällen steckten die Server beim Ausführen der letzten Updater bei IPv6 fest, wo einige Sites nicht erreichbar waren.
Das Skript findet heraus, ob es Kernel, die aufgrund von Abhängigkeits-Builds vollständig blockiert sind, zwangsweise entfernen muss, oder ob es dies auf die "richtige" Weise kann.
quelle
Einfach loslaufen
sudo apt-get -f autoremove
löste mein Problem.quelle
/dev/sda1
ist auf/
Führen Sie Folgendes aus:
Quelle: Ich bekomme diesen Fehler nach dem Upgade. bitte hilf
quelle
apt
Kernelpakete nicht entfernt werden, da der Entfernungsprozess selbst Dateien in generiert/boot
, die bereits voll sind. Deshalbapt-get autoremove
scheitert. Die Frage, die Sie suchen, ist askubuntu.com/q/142926/158442 , die bereitsautoremove
aufgeführt ist.Ich habe ein paar Artikel über / boot gesehen, die voll sind und die nicht durch das Löschen alter Linux-Kernel durch dpkg behoben werden, da apt-get -f install oder apt-get -f autoremov e die Kernel neu installiert.
Zumindest in meinem Fall mussten die signierten und zusätzlichen Pakete ebenfalls entfernt werden - die Kernel waren Abhängigkeiten für diese Pakete, sodass sie möglicherweise neu installiert wurden. Im Allgemeinen sollten verwandte Kernelpakete vor dem Aufruf von 'install' gelöscht werden. Wenn Sie direkt nach dem Löschen versucht haben , ein Upgrade zu erhalten , sollte in der Fehlermeldung angegeben sein, welche Pakete eine nicht erfüllte Abhängigkeit von dem Kernel hatten, den Sie gerade gelöscht haben.
In meinem Fall hat die folgende Taktik funktioniert:
quelle
Installieren Sie das Linux-Purge- Tool wie folgt .
Dann starte im Terminal:
Entfernen Sie dann die Kernel weiter, indem Sie z
Extra:
Wenn Sie linux-purge für die unbeaufsichtigte Entfernung des Kernels verwenden möchten, anstatt dafür unbeaufsichtigte Upgrades zu verwenden, sollten Sie das Entfernen nicht verwendeter Inhalte deaktivieren, indem Sie /etc/apt/apt.conf.d/50unattended-upgrades bearbeiten und einen systemd-Dienst einrichten ausführen
wann immer du willst.
quelle