L'une de mes machines est le 2 Go Eeepc Surf, un net Netbook avec des ressources très limitées. Si limité que maintenant, j'ai 22 Mo espace libre à gauche.
Sur, je suis en cours d'exécution Arch Linux avec le Openbox de et une foule d'applications requises pour fonctionner comme un PC mobile.
Quelles méthodes sont disponibles pour éliminer certains espaces utilisés inutiles?
Voici quelques points que vous pourriez commencer par:
Regardez les packages installés sur votre système avec pacman -Q
et supprimer ceux dont vous n'avez pas besoin. Un bon démarrage peut être d'ajouter le -t
changer:
Restreindre ou filtrer la sortie aux packages non requis par un package actuellement installé.
Nettoyez le cache de paquet de Pacman avec pacman -Sc
Toujours utiliser pacman -Rs
Pour supprimer également les dépendances d'emballage non utilisées.
Pour trouver des "gros fichiers" et des dossiers qui utilisent de grandes parties du disque, une belle addition à du
est xdiskusage
. Ce petit outil vous permet de parcourir rapidement votre système de fichiers et de voir une représentation graphique de l'utilisation du disque des dossiers.
AVERTISSEMENT: ces idées ne sont que pour les utilisateurs qui sont connectés à la fois à Linux dans son ensemble et à une arche Linux.) ==) ==) ==) ==) ==) ==) ==) ==) ==) ==) ==)
Si vous êtes prêt à marcher sur un territoire dangereux, vous pouvez installer une arc de base d'une arc de base à moins de 500 Mo installée. Cela nécessite de faire des choses très dangereuses:
/usr/lib/firmware
)/usr/lib/modules/...
).a
Fichiers dans /usr/lib
(seulement si vous n'utilisez jamais le système pour compiler des logiciels. Remarque: Ceci inclut l'utilisation de makepkg
)/usr/include
(seulement si vous n'utilisez jamais le système pour compiler des logiciels)/usr/share/doc
et /usr/share/info
/usr/share/man
/usr/share/terminfo
et des fichiers de fuseau horaire inutiles de /usr/share/zoneinfo
strip *
sur tous les dossiers contenant des binaires exécutables (/usr/bin
et /usr/sbin
)upx
pour compresser des binaires plus importants (les binaires Samba se prêtent à ce que elles ont tendance à être assez grandes car elles sont souvent compilées statiquement.) Notez également que l'utilisation de upx
signifie que l'ensemble du binaire non compressé doit s'adapter au RAM au cours de l'exécution, soyez donc fatigué sur des systèmes à bas bélier.Avant de faire tout cela, faites une sauvegarde complète de votre système. Linux rend heureusement cela relativement facile - si vous pouvez attacher et monter un volume externe (par exemple un lecteur USB), vous pouvez faire quelque chose comme cd / && tar -cf /mnt/usb/mySystem.tar /
Pour sauvegarder tout le système.
Encore une fois, notez que je ne recommande pas de faire ce qui précède (en particulier 7 à 9), à moins que vous n'ayez connaissances approfondies, expérience et compréhension de Linux interne et archigno Linux. Jouer avec juste à propos de l'un des fichiers que j'ai énumérés peut endommager un système de manière horrible, vous avez donc été prévenu. Si vous ne savez pas si votre système a besoin d'un certain fichier de firmware, module, etc., faites votre recherche avant de vous gâcher. (Soyez averti que l'élimination des modules de noyau que votre système a besoin peut entraîner un système inébranlable ou un système sans clavier/carte réseau/son/affichage/etc. Support, ou toutes sortes d'autres comportements inexplicables.)
Veuillez également noter que les mises à niveau de package peuvent et vont restaurer de nombreux fichiers que vous supprimez ci-dessus. Si vous décidez de suivre cette route, vous voudrez peut-être éventuellement scripter le retrait des fichiers inutiles et exécuter votre script après chaque mise à niveau de colis majeur. (Exemple: la mise à niveau du noyau ramènera tous les modules du noyau ainsi que la mise à niveau via une dépendance Le package de microprogramme Linux rapportant tout le micrologiciel de l'/usr/lib/firmware
.)
Enfin, gardez un oeil sur /var/log
Comme les fichiers de journal augmenteront au fil du temps. Vous pouvez supprimer des journaux passées mais gardez les actuels en faisant quelque chose comme rm *\@*.journal
Dans votre dossier de journal.
J'ai exécuté avec succès un NAS Server désactivée d'un périphérique de disque sur disque sur 512 Mo pour des mois à l'aide de ces techniques, mais elles ne sont toujours pas pour les faibles de coeur. (J'ai aussi utilisé LinuxFromscRatch pour construire un projet similaire dans seulement 128 Mo de stockage, mais c'est une autre histoire ...)
Edit/Ajouter:
Voici quelques méthodes supplémentaires que vous pouvez utiliser pour essayer d'obtenir un espace supplémentaire:
Se débarrasser de libgo
. La bibliothèque libgo
vient avec gcc-libs
et est AFAIK uniquement utilisé par les applications écrites dans la langue GO. Je ne peux penser à aucune demande que j'utilise qui nécessite cette bibliothèque. Sur mon système, il est de 40 Mo de taille. Lorsque vous essayez de réduire la place, c'est beaucoup d'espace. Je l'ai supprimé de mon "mini" installe sans effets néfastes sur tout ce que je fais (mais encore une fois, c'est moi, ymmv!)
Rétrécissement libicudata.so
. Il est 27 Mo sur mon système. Il s'agit essentiellement d'une tonne de données unicode/locale compressées dans un objet de bibliothèque. Il existe un outil en ligne qui peut effectuer des versions plus petites de ce fichier, mais elle n'a pas été mise à jour pour la version actuelle (et vous ne pouvez pas utiliser de fichiers plus anciens dans les nouvelles versions plus récentes.) Je n'ai pas essayé de faire cela à la main, mais Si vous pouvez comprendre comment, vous pouvez raser environ 20-22 Mo de sortir de ce fichier.
Si vous utilisez Python, vous pouvez enregistrer 37 Mo ou donc en supprimant la bibliothèque test
de Python2: rm -r /usr/lib/python2.7/test
et environ 66 Mo en le retirant pour Python3: rm -r /usr/lib/python3.6/test
.
Encore une fois pour Python, vous pouvez vous débarrasser de la .pyo
fichiers et le .py
des dossiers. Les .pyo
Les fichiers sont des fichiers "optimisés", mais Python ne les utilise jamais vraiment. Le .py
Les fichiers sont le code source brut pour la bibliothèque standard. Les seuls fichiers Python se lit normalement en cours d'exécution Python code est le .pyc
(Python compilé) fichiers. cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
et cd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Suppression des données locales inutiles. Il y a un paquet Aur appelé localepurge
qui l'automatise. Sinon, vous devez jouer à /usr/share/locale
. Vous devez garder votre propre local et locale.alias
. Pour moi ici aux États-Unis, gardant en_US
et locale.alias
et supprimer tout le reste rasé environ 80 Mo.
Maintenant, ce que je veux voir, c'est un outil qui analyse votre système et détermine quels modules de noyau dont vous avez besoin et quels fichiers de microprogramme dont vous avez besoin. Ce serait une bonne façon de "nettoyer en toute sécurité" de nettoyer ces dossiers ...
Ou peut-être que quelqu'un devrait réunir une arche "Distro" qui utilise uClibc
ou diet-libc
ou quelque chose de similaire. Cela pourrait être un projet d'été amusant. :-)
journalctl --vacuum-size=100M #remove all logs, only retain 100mb
pacman -Scc #remove all package installation files (obsolete and current)
pacman -S bleachbit
bleachbit -c system.*
du -d1 -h / 2>/dev/null | sort -h
Cela montre une liste triée des plus grands DIRS de /
Vous pouvez faire deux niveaux bas:
du -d2 -h / 2>/dev/null | sort -h
Mon résultat est:
0 /proc
0 /sys
0 /tmp
12K /dev
12K /srv
16K /lost+found
632K /run
4.3M /boot
13M /opt
15M /etc
75M /root
93M /home
2.4G /var
3.2G /usr
221G /mnt
227G /
J'ignore /mnt
(parce que c'est un lecteur externe) deux DIRS se tiennent à l'esprit: var
et usr
. Voyons ce qui est à l'intérieur:
du -d1 -h /var /usr 2>/dev/null | sort -h
Ensuite, un peu plus profondément:
du -d1 -h /var/log /usr/share /usr/lib /var/cache 2>/dev/null | sort -h
J'ai 717 Mo dans /var/log
.
Je ne suis pas un fan de supprimer des répertoires au hasard, alors faites-le la voie propre:
$ journalctl --disk-usage
Archived and active journals take up 728.7M on disk.
Laissons seulement 100 Mo de journaux:
journalctl --vacuum-size=100M
...
Deleted archived journal /var/log/journal/ba5391...b.journal (8.0M).
...
Vacuuming done, freed 616.6M of archived journals on disk.
Plus d'infos ici sur la configuration de JournalCtL ICI .
J'ai 660M /var/cache/pacman
. C'était 1,8 Go, mais j'ai couru pacman -Sc
Pour supprimer les paquets inutilisés. Retirons le reste:
pacman -Scc
Beaucoup d'utilisateurs le suppriment ou du moins le nettoyez-le. Mais je pourrais être un problème . Mais Checkout Bleachbit (paragraphe suivant).
nettoyeur automatique . Supprimera beaucoup de choses, mais pour c'était surtout local.
$ pacman -S bleachbit
$ bleachbit -p system.*
Disk space to be recovered: 488.8MB
$ bleachbit -c system.*
Vous pouvez rechercher plus de choses à supprimer:
bleachbit --list
bleachbit -p Thunderbird.*
Sur le disque de 4 Go de mon EeePC avec Ubuntu, il a aidé à supprimer certains fichiers locaux (de/usr/share/locale) et des fichiers d'aide gnome (de/USR/Share/Gnome/Aide /). Les deux ont été installés pour des langues que je n'utilisez pas. Pas sûr si Arch Linux installe même tous ces fichiers, cependant.
Je suggérerais d'automatiser en regardant vos propres vieux fichiers et de voir si nécessaire et supprimez-les. Cela peut faire avec deux choses. On écrit une commande find
pour rechercher des fichiers très anciens. et en utilisant cette sortie (peut-être du tuyau) sur lograte
script à des fichiers d'archive de plus de 3 mois et de suppression de fichiers de plus de 3 mois dans les archives et envoyez un courrier à 1 jour avant de le supprimer. Afin que vous puissiez être sûr de ne pas avoir perdu de fichier important. Donc, enfin, vous auriez besoin des commandes suivantes pour accomplir ce qui précède:
find , | , logrotate , mail, crontab
Je ne vais pas aller à la cuillère vous nourrir. J'ai déjà fait cela auparavant a eu beaucoup de succès avec cela et j'ai ensuite été mis au rebut parce que nous avons décidé d'aller avec nagios
pour la surveillance, car il était plus à l'écoute de faire ce genre de choses dans un serveur Corp. Je pense que si la commande mail
_ n'est pas déjà configurée pour vous, vous constaterez peut-être que le reste le plus difficile devrait être simple. Tout cela a besoin de faire via Bash Scripting et de mettre cela dans le travail de cron et de courir tous les x jours. Apprenez les scripts Bash, ce sera très utile non seulement pour cela, mais également pour vous rendre la vie plus facile avec * Nix. Utilisez donc votre moteur de recherche Internet préféré et lisez sur les commandes ci-dessus et les scripts Bash. Et attachez-les ensemble et testez-le. Une fois satisfait mis à une utilisation régulière. Je suppose que ce sera amusant à faire cela. Vous apprendrez beaucoup si vous ne l'avez pas fait cela auparavant.