Eine meiner Maschinen ist das 2GB EeePC Surf , ein ordentliches Netbook mit sehr begrenzten Ressourcen. So begrenzt, dass ich momentan noch 22 MB freien Speicherplatz habe.
Darauf starte ich Arch Linux mit der Openbox DE und einer Vielzahl von Anwendungen, die für die Funktion als mobiler PC erforderlich sind.
Welche Methoden stehen zur Verfügung, um nicht benötigten Speicherplatz zu entfernen?
arch-linux
openbox
efficiency
Stefan
quelle
quelle
du -sh /
zu sehen, wo der größte Teil Ihres Speicherplatzes verwendet wird.du -sh /*
?cd /
und laufendu -sh *
und Drilldown ... (Sie haben nicht wirklich genug RAM, um Sachen darin zu speichern)Antworten:
Hier sind einige Punkte, mit denen Sie beginnen könnten:
Schauen Sie sich die Pakete an, die auf Ihrem System installiert sind,
pacman -Q
und entfernen Sie diejenigen, die Sie nicht benötigen. Ein guter Anfang kann sein, den-t
Schalter anzuhängen :Reinigen Sie den Paket-Cache von Pacman mit
pacman -Sc
Immer verwenden
pacman -Rs
, um auch nicht verwendete Paketabhängigkeiten zu entfernen.Für „große Dateien“ und Ordner , die große Teile der Platte zu verwenden, eine schöne Ergänzung zu
du
istxdiskusage
. Mit diesem kleinen Tool können Sie Ihr Dateisystem schnell durchsuchen und eine grafische Darstellung der Festplattenbelegung der Ordner anzeigen.quelle
pacman -cc
Ich denke, den gesamten Cache einschließlich der installierten Pakete zu bereinigen. Normalerweise nicht empfehlenswert, da Sie diese möglicherweise später als Backups benötigen.--cachedir
, sodass ich keine pkg-Dateien speichern muss./
fand ich daspacgraph
echt nützlich. Es kann Ihre installierten Pakete nach Größe sortieren, sodass Sie besser priorisieren können, was zu entfernen sinnvoll ist. (Es kann sogar SVG-Abhängigkeitsgraphen zeichnen, ist aber nur über die Befehlszeile nützlich.)ncdu
ist eine coole Kommandozeilenalternative zuxdiskusage
. Baobab ist jedoch die mit Abstand beste grafische App für diesen Zweck.WARNUNG: Diese Ideen sind nur für Benutzer gedacht, die sich sowohl mit Linux als Ganzes als auch mit Arch Linux auskennen.
Wenn Sie bereit sind, gefährliches Terrain zu betreten, können Sie eine Basis-Arch-Installation auf weniger als 500 MB reduzieren. Dies erfordert einige sehr gefährliche Dinge:
/usr/lib/firmware
)/usr/lib/modules/...
).a
Dateien in/usr/lib
(nur, wenn Sie das System niemals zum Kompilieren von Software verwenden. Hinweis: Dies umfasst die Verwendung vonmakepkg
)/usr/include
(nur wenn Sie das System nie zum Kompilieren von Software verwenden)/usr/share/doc
und/usr/share/info
/usr/share/man
/usr/share/terminfo
und nicht benötigter Zeitzonen-Dateien von/usr/share/zoneinfo
strip *
allen Ordnern ausgeführt, die ausführbare Binärdateien (/usr/bin
und/usr/sbin
) enthalten.upx
zum Komprimieren größerer Binärdateien (die Samba-Binärdateien eignen sich gut dafür, da sie häufig statisch kompiliert werden.) Beachten Sie auch, dass bei Verwendung vonupx
die gesamte unkomprimierte Binärdatei passen muss RAM während der Ausführung, seien Sie also auf Systemen mit wenig RAM müde.Bevor Sie dies tun, ERSTELLEN SIE EINE VOLLSTÄNDIGE SICHERUNG Ihres Systems. Glücklicherweise macht Linux dies relativ einfach - wenn Sie ein externes Volume (z. B. ein USB-Laufwerk) anschließen und mounten können, können Sie so etwas wie ein
cd / && tar -cf /mnt/usb/mySystem.tar /
Backup des gesamten Systems durchführen.Beachten Sie erneut, dass ich die oben genannten Schritte (insbesondere die Schritte 7 bis 9) nicht empfehle, es sei denn, Sie verfügen über fundierte Kenntnisse, Erfahrungen und Kenntnisse über Linux-Interna und Arch Linux . Das Spielen mit fast allen aufgelisteten Dateien kann ein System auf schreckliche Weise beschädigen. Sie wurden also gewarnt. Wenn Sie nicht wissen, ob Ihr System eine bestimmte Firmware-Datei, ein bestimmtes Modul usw. benötigt, führen Sie Ihre Recherchen durch, bevor Sie damit herumspielen. (Seien Sie gewarnt, dass das Entfernen von Kernel-Modulen, die Ihr System benötigt, zu einem nicht mehr startbaren System oder zu einem System ohne Tastatur- / Netzwerkkarten- / Sound- / Display- / usw. Unterstützung oder zu allen möglichen anderen unerklärlichen Verhaltensweisen führen kann.)
Beachten Sie auch, dass bei allen Paketaktualisierungen viele der oben entfernten Dateien wiederhergestellt werden können und werden. Wenn Sie sich für diesen Weg entscheiden, möchten Sie möglicherweise die Entfernung nicht benötigter Dateien per Skript ausführen und Ihr Skript nach jedem größeren Paket-Upgrade ausführen. (Beispiel: Durch das Aktualisieren des Kernels werden alle Kernelmodule sowie das Linux-Firmware-Paket, das die gesamte Firmware des Kernels wiederherstellt, über die Abhängigkeit wiederhergestellt
/usr/lib/firmware
.)Behalten Sie zum Schluss die Übersicht,
/var/log
da die Journaldateien mit der Zeit immer größer werden. Sie können frühere Journale entfernen, aber die aktuellen behalten, indem Sie etwasrm *\@*.journal
in Ihrem Journalordner tun .Ich habe monatelang erfolgreich einen NAS-Server von einem 512-MB-Disk-on-Module-Gerät mit diesen Techniken betrieben, aber sie sind immer noch nichts für schwache Nerven. (Ich habe auch LinuxFromScratch verwendet, um ein ähnliches Projekt mit nur 128 MB Speicherplatz zu erstellen, aber das ist eine andere Geschichte ...)
EDIT / ADD:
Hier sind einige weitere Methoden, mit denen Sie versuchen können, zusätzlichen Speicherplatz zu erhalten:
Loswerden
libgo
. Dielibgo
Bibliothek wird mitgcc-libs
AFAIK geliefert und wird nur von Anwendungen verwendet, die in der Sprache Go geschrieben sind. Mir fällt keine Anwendung ein, die diese Bibliothek benötigt. Auf meinem System sind es 40 MB. Wenn Sie versuchen, schlank zu werden, ist das viel Platz. Ich habe es aus meinen "Mini" -Installationen entfernt, ohne negative Auswirkungen auf meine Aktivitäten zu haben (aber das bin ich, YMMV!)Schrumpfen
libicudata.so
. Auf meinem System sind es 27 MB. Es handelt sich im Grunde genommen um eine Menge Unicode- / Gebietsschemadaten, die in ein Bibliotheksobjekt komprimiert wurden. Es ist ein Tool online, mit dem kleinere Versionen dieser Datei erstellt werden können, das jedoch nicht für die aktuelle Version aktualisiert wurde (und Sie können in neueren Versionen keine älteren Dateien verwenden). Ich habe dies nicht manuell versucht, aber Wenn Sie herausfinden können, wie, können Sie etwa 20-22 MB aus dieser Datei rasieren.Wenn Sie Python verwenden, können Sie etwa 37
test
MBrm -r /usr/lib/python2.7/test
einsparen, indem Sie die Bibliothek aus python2: entfernen, und etwa 66 MB, indem Sie sie für python3: entfernenrm -r /usr/lib/python3.6/test
.Wieder für Python können Sie die
.pyo
Dateien und die.py
Dateien loswerden . Die.pyo
Dateien sind "optimierte" Dateien, aber Python verwendet sie nie wirklich. Die.py
Dateien sind der unformatierte Quellcode für die Standardbibliothek. Die einzigen Dateien, die Python normalerweise liest, wenn Python-Code ausgeführt wird, sind die.pyc
(mit Python kompilierten) Dateien.cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
undcd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Unnötige Gebietsschemadaten entfernen. Es gibt ein AUR-Paket,
localepurge
das dies automatisiert. Ansonsten muss man in herumspielen/usr/share/locale
. Sie müssen Ihr eigenes Gebietsschema behalten undlocale.alias
. Für mich hier in den USA, zu haltenen_US
undlocale.alias
und entfernen alles andere über 80MB abrasiert.Was ich jetzt sehen möchte, ist ein Tool, das Ihr System analysiert und bestimmt, welche Kernelmodule Sie benötigen und welche Firmware-Dateien Sie benötigen. Das wäre eine gute Möglichkeit, diese Ordner "sicher" zu bereinigen ...
Oder vielleicht jemand sollte einen Bogen „Distro“ dass Anwendungen zusammen
uClibc
oderdiet-libc
oder etwas ähnliches. Das könnte ein lustiges Sommerprojekt sein. :-)quelle
upx
, es funktioniert nicht mit allen Arten von exectuables, zB: es hat mysqld & mongodb segfaultingNoExtract
Definitionen erweitern (die mehrmals definiert werden können), können Sie dieses Problem dauerhaft lösen. Ein Beispiel, um nur die Treiber von Realtek nic zu aktualisieren:NoExtract = usr/lib/firmware/* !usr/lib/firmware/rtl_nic/*
find /usr/lib/firmware -atime +30
Ich würde Firmware-Dateien finden, auf die in 30 Tagen nicht zugegriffen wurde. Es sollte sicher sein, diese Dateien zu löschen.TLDR
Erstens, was ist auf dem System groß
Dies zeigt eine sortierte Liste der größten Verzeichnisse in
/
Sie können zwei Ebenen nach unten gehen:Mein Ergebnis ist:
Ich ignoriere
/mnt
(weil das ein externes Laufwerk ist) Zwei dirs stehen in den Sinn:var
undusr
. Mal sehen, was drin ist:Dann etwas tiefer:
Beginnen wir mit den Protokollen
Ich habe 717mb in
/var/log
.Ich bin kein Fan des zufälligen Löschens von Verzeichnissen, also lass es uns auf die saubere Art und Weise machen:
Lassen wir nur 100 MB an Protokollen:
Weitere Informationen zum Konfigurieren von journalctl finden Sie hier .
Pakete
Ich habe
660M /var/cache/pacman
. Es war 1,8 GB, aber ich liefpacman -Sc
, um nicht verwendete Pakete zu entfernen. Lassen Sie uns den Rest entfernen:/ usr / share / locale
Viele Benutzer entfernen es oder bereinigen es zumindest. Aber ich könnte ein Problem sein . Aber zur Kasse Bleichbit (nächster Absatz).
Bleachbit
Automatischer Reiniger . Wird eine Menge Sachen löschen, aber dafür waren meistens Locales.
Sie können nach weiteren zu löschenden Elementen suchen:
quelle
Total Installed Size: 209.70 MiB
du -xkd1
im/
Verzeichnis tun , wird es nicht in andere Mountpunkte absteigen.Auf der 4 GB Festplatte in meinem Eeepc mit Ubuntu hat es geholfen, einige Locale-Dateien (aus / usr / share / locale) und Gnome-Hilfedateien (aus / usr / share / gnome / help /) zu entfernen. Beide wurden für Sprachen installiert, die ich nicht verwende. Ich bin mir nicht sicher, ob Arch Linux überhaupt alle diese Dateien installiert.
quelle
du -hs /usr/share/locale
ist ungefähr 300MB ... kann ich nurrm -rf
die nicht benötigten Dateien?/etc/locale.gen
und erneut ausführenlocale-gen
, sollten Sie weniger vorkompilierte Gebietsschemas haben. Wenn Sie automatisiert mehr Speicherplatz freigeben möchten, können Sie auch aur.archlinux.org/packages.php?ID=11975 ausprobieren . (Aber es wird nicht unterstützt und wenn es Ihr System kaputt macht, können Sie die Teile behalten.)Ich würde AUTOMATISIEREN vorschlagen, indem Sie Ihre eigenen, sehr alten Dateien betrachten und prüfen, ob dies erforderlich ist, und sie entfernen. Dies kann mit zwei Dingen geschehen. Man schreibt einen
find
Befehl, um nach sehr alten Dateien zu suchen. und mit dieser Ausgabe (möglicherweise Pipe) einlograte
Skript erstellen, um Dateien zu archivieren, die älter als 3 Monate sind, und Dateien zu löschen, die älter als 3 Monate sind, und eine E-Mail an einen Tag zu senden, bevor sie gelöscht werden. Damit Sie sicher sein können, dass Sie keine wichtige Datei verloren haben. Zum Abschluss müssten Sie also die folgenden Befehle ausführen:Ich werde dich nicht füttern. Ich habe das schon mal gemacht, war damit ziemlich erfolgreich und wurde später ausrangiert, weil wir uns
nagios
für die Überwachung entschieden haben, da es besser darauf abgestimmt war, solche Dinge auf einem Corpserver zu erledigen. Ich denke, wenn dermail
Befehl nicht bereits für Sie konfiguriert ist, werden Sie vielleicht feststellen, dass der schwierigste Rest direkt sein sollte. Dies alles muss durch Bash-Skripte und Cron-Jobs geschehen und alle x Tage ausgeführt werden. Lerne bash scripting, es wird nicht nur dafür sehr nützlich sein, sondern auch, um dir das Leben mit * nix zu erleichtern. Verwenden Sie also Ihre bevorzugte Internet-Suchmaschine und informieren Sie sich über die obigen Befehle und Bash-Skripte. Und binde sie zusammen und teste es. Einmal befriedigt, regelmäßig anwenden. Ich versichere, es wird Spaß machen, dies zu tun. Sie werden viel lernen, wenn Sie das noch nie gemacht haben.quelle