Das Thema:
Wenn ich tippe:
dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1
Ich erhalte eine Liste aller auf meinem Rechner installierten Pakete, Beispiel:
...
raspberrypi-artwork extra
raspberrypi-bootloader extra
raspberrypi-ui-mods extra
raspi-config extra
rpi-update extra
sonic-pi extra
ssh extra
triggerhappy extra
wireless-tools extra
xkb-data extra
adduser important
apt important
apt-utils important
aptitude important
aptitude-common important
bsdmainutils important
...
Ich habe vor Kurzem ein Skript ausgeführt, das viel zu viele Dinge installiert hat, und jetzt antwortet mein Computer mit: /usr/bin/mandb: can't write to /var/cache/man/2694: No space left on device
(Die Pfade ändern sich, aber es wird mir immer angezeigt, dass kein Platz mehr frei ist.)
Die möglichen Beschriftungen, die ich sehe, sind:
- Standard
- extra
- wichtig
- Optional
- erforderlich
Ich habe nicht festgeschriebene Änderungen in verschiedenen Repos und möchte in der Lage sein, meine lokalen Änderungen zu pushen, aber beim Push-Versuch erhalte ich immer wieder diesen Fehler:
$ git push
fatal: write error: No space left on device
error: Couldn't write .git/refs/remotes/origin/master.lock
error: Cannot update the ref 'refs/remotes/origin/master'.
Everything up-to-date
Ich muss auch sagen, dass ich weiß, dass nicht alles auf dem neuesten Stand ist.
Das System:
Dies ist auf einem Raspberry Pi, auf dem „Wheezy“ Raspbian läuft.
Die Frage:
Ich habe mehrere hundert Pakete installiert. Wie entferne ich alle Pakete mit der Bezeichnung „extra“? Ist das der beste Weg, um Speicherplatz auf meinem Computer freizugeben? Ich habe nicht festgeschriebene Änderungen in verschiedenen Repos und möchte meine lokalen Änderungen übertragen können.
Ich würde auch eine Antwort akzeptieren, die alles außer dem Erforderlichen und Wichtigen entfernt. Git ist als optional gekennzeichnet und ich würde es lieber beibehalten (obwohl ich es jederzeit erneut installieren kann, nachdem ich alle nicht benötigten Pakete entfernt habe).
Dank im Voraus!!
Antwort1
Mit dem folgenden Befehl können Sie alle optionalen und zusätzlichen Pakete löschen:
sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}\n' | awk '$2 ~ /optional|extra/ { print $1 }')
Mit der --simulate
Markierung können Sie sehen, was entfernt wird, ohne tatsächlich alles zu entfernen. Entfernen Sie die Markierung, um Pakete tatsächlich zu deinstallieren.
Sie müssen Git neu installieren, da es zusammen mit den anderen optionalen und zusätzlichen Paketen entfernt wird.
Möglicherweise benötigen Sie einige optionale und zusätzliche Pakete, entfernen Sie diese also mit Bedacht. Weitere hier:https://askubuntu.com/questions/79665/keep-only-essential-packages
Antwort2
Das müsste man prüfenWoIhnen geht der Speicherplatz aus. Der df(1)
Befehl teilt Ihnen mit, welche Dateisysteme voll sind.
Ein häufiger Grund für zu wenig Speicherplatz sind große Protokolldateien (prüfen Sie unter /var/log
, Ihr System sollte über Befehle zum Löschen veralteter Protokolle verfügen). Beachten Sie, dass sort(1)
temporäre Dateien verwendet werden, entweder in var/tmp
oder /tmp
. Wenn eine dieser Dateien zu viel Datenmüll enthält, kann es aufgrund von Speicherplatzmangel zu einem Fehler kommen.
Antwort3
Da Sie Aptitude installiert haben, kann es Ihnen hier helfen. Starten Sie aptitude
und beschränken Sie (Tastenkürzel: l
) die Ansicht auf Pakete, die übereinstimmen
~i ~pextra
Sehendas Online-Handbuchoder /usr/share/doc/aptitude/README
für eine Suchbegriffreferenz.
Sie können nun alle deinstallieren: Klicken Sie -
unter jeder Überschrift der obersten Ebene auf , um die Pakete zur Deinstallation zu markieren (Konfigurationsdateien bleiben erhalten) oder _
zum Löschen zu markieren (Konfigurationsdateien werden entfernt) und g
fahren Sie dann fort. Sie haben die Möglichkeit, die Liste zu überprüfen, falls Sie einige der Pakete behalten möchten.