Una de mis máquinas es la EeePC Surf de 2GB , una netbook ordenada con recursos muy limitados. Tan limitado que en este momento, me quedan 22 MB de espacio libre.
En él, estoy ejecutando Arch Linux con Openbox DE y una gran cantidad de aplicaciones necesarias para que funcione como una PC móvil.
¿Qué métodos están disponibles para eliminar algún espacio usado innecesario?
arch-linux
openbox
efficiency
Stefan
fuente
fuente
du -sh /
para ver dónde se usa la mayor parte de su espacio.du -sh /*
?cd /
y correrdu -sh *
y profundizar ... (realmente no tienes suficiente carnero para almacenar cosas)Respuestas:
Aquí hay algunos puntos con los que puede comenzar:
Eche un vistazo a los paquetes instalados en su sistema
pacman -Q
y elimine los que no necesita. Un buen comienzo puede ser agregar el-t
interruptor:Limpie el caché del paquete de pacman con
pacman -Sc
Utilice siempre
pacman -Rs
para eliminar también dependencias de paquetes no utilizados.Para encontrar "archivos grandes" y carpetas que usan partes grandes del disco, una buena adición
du
esxdiskusage
. Esta pequeña herramienta le permite explorar rápidamente su sistema de archivos y ver una representación gráfica del uso del disco de las carpetas.fuente
pacman -cc
para limpiar todo el caché, incluidos los paquetes instalados, creo. Normalmente no se recomienda, ya que es posible que desee usarlos como copias de seguridad más adelante.--cachedir
, así que no necesito guardar ningún archivo pkg./
, me pareciópacgraph
realmente útil. Puede ordenar los paquetes instalados por tamaño, por lo que puede priorizar mejor lo que tiene sentido eliminar. (Incluso puede dibujar gráficos de dependencia SVG, pero es útil solo desde la línea de comandos).ncdu
es una buena alternativa de línea de comandos paraxdiskusage
. Sin embargo, Baobab es, con mucho, la mejor aplicación gráfica para este propósito.ADVERTENCIA: Estas ideas son solo para usuarios que conocen bien Linux como un todo y Arch Linux.
Si está dispuesto a pisar territorio peligroso, puede reducir una instalación de Arch base a menos de 500 MB instalados. Esto requiere hacer algunas cosas muy peligrosas:
/usr/lib/firmware
)/usr/lib/modules/...
).a
archivo/usr/lib
(solo si nunca usa el sistema para compilar software. nota: esto incluye usarmakepkg
)/usr/include
(solo si nunca usa el sistema para compilar software)/usr/share/doc
y/usr/share/info
/usr/share/man
/usr/share/terminfo
innecesarios y archivos de zona horaria innecesarios de/usr/share/zoneinfo
strip *
en todas las carpetas que contienen archivos binarios ejecutables (/usr/bin
y/usr/sbin
)upx
para comprimir binarios más grandes (los binarios de Samba se prestan bien a esto, ya que tienden a ser bastante grandes ya que a menudo se compilan estáticamente). También tenga en cuenta que usarupx
significa que todo el binario sin comprimir debe encajar RAM durante la ejecución, así que tenga cuidado con los sistemas con poca RAM.Antes de hacer CUALQUIERA de esto, HAGA UNA COPIA DE SEGURIDAD COMPLETA de su sistema. Afortunadamente, Linux hace esto relativamente fácil: si puede conectar y montar un volumen externo (por ejemplo, una unidad USB), puede hacer algo como
cd / && tar -cf /mnt/usb/mySystem.tar /
hacer una copia de seguridad de todo el sistema.Una vez más, tenga en cuenta que en realidad no recomiendo hacer lo anterior (especialmente del 7 al 9) a menos que tenga un profundo conocimiento, experiencia y comprensión de los componentes internos de Linux y Arch Linux . Jugar con casi cualquiera de los archivos que he enumerado puede dañar un sistema de manera horrible, por lo que te advertimos. Si no sabe si su sistema necesita un determinado archivo de firmware, módulo, etc., investigue antes de meterse con él. (Tenga en cuenta que la eliminación de los módulos del núcleo que necesita su sistema puede dar como resultado un sistema que no se puede iniciar, o un sistema sin soporte para teclado / tarjeta de red / sonido / pantalla / etc., o todo tipo de otro comportamiento inexplicable).
Además, tenga en cuenta que las actualizaciones de paquetes pueden restaurar muchos de los archivos que eliminó anteriormente. Si decide seguir esta ruta, es posible que desee realizar una secuencia de comandos para eliminar los archivos innecesarios y ejecutar su secuencia de comandos después de cada actualización importante del paquete. (Ejemplo: la actualización del kernel traerá de vuelta todos los módulos del kernel, así como la actualización por dependencia del paquete linux-firmware que traerá de vuelta todo el firmware
/usr/lib/firmware
).Finalmente, vigile
/var/log
que los archivos del diario crecerán con el tiempo. Puede eliminar diarios pasados pero conservar los actuales haciendo algo comorm *\@*.journal
en su carpeta de diario.Ejecuté con éxito un servidor NAS en un dispositivo de disco en módulo de 512 MB durante meses usando estas técnicas, sin embargo, todavía no son para los débiles de corazón. (También he usado LinuxFromScratch para construir un proyecto similar en solo 128 MB de almacenamiento, pero esa es otra historia ...)
EDITAR / AGREGAR:
Aquí hay algunos métodos más que puede usar para intentar obtener algo de espacio adicional:
Deshacerse de
libgo
. Lalibgo
biblioteca viene congcc-libs
AFAIK y solo la usan aplicaciones escritas en el idioma Go. No puedo pensar en ninguna aplicación que use que necesite esa biblioteca. En mi sistema tiene un tamaño de 40 MB. Cuando intentas adelgazar, eso es mucho espacio. Lo eliminé de mis "mini" instalaciones sin efectos negativos en nada de lo que hago (¡pero de nuevo, ese soy yo, YMMV!)La disminución
libicudata.so
. Son 27 MB en mi sistema. Es básicamente una tonelada de datos unicode / locale comprimidos en un objeto de biblioteca. Hay una herramienta en línea que puede hacer versiones más pequeñas de este archivo, pero no se ha actualizado para la versión actual (y no puede usar archivos más antiguos en versiones más recientes). No he intentado hacer esto a mano, pero Si puede averiguar cómo, puede eliminar unos 20-22 MB de este archivo.Si utiliza Python, puede guardar 37MB o menos mediante la eliminación de la
test
biblioteca de python2:rm -r /usr/lib/python2.7/test
y alrededor de 66 MB mediante la eliminación de python3:rm -r /usr/lib/python3.6/test
.Nuevamente para Python, puede deshacerse de los
.pyo
archivos y los.py
archivos. Los.pyo
archivos son archivos "optimizados", pero Python nunca los usa realmente. Los.py
archivos son el código fuente sin formato para la biblioteca estándar. Los únicos archivos que Python lee normalmente cuando se ejecuta código Python son los.pyc
archivos (compilados en Python).cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
ycd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Eliminando datos locales innecesarios. Hay un paquete AUR llamado
localepurge
que automatiza esto. De lo contrario, tienes que jugar/usr/share/locale
. Necesita mantener su propio entorno local ylocale.alias
. Para mí aquí en los EE.UU., manteniendoen_US
elocale.alias
y la eliminación de todo lo demás afeitado sobre 80MB.Ahora, lo que quiero ver es una herramienta que analice su sistema y determine qué módulos del núcleo necesita y también qué archivos de firmware necesita. Esa sería una buena manera de limpiar "con seguridad" esas carpetas ...
O, tal vez alguien debe armar una "distribución" Arco que los usos
uClibc
odiet-libc
o algo similar. Ese podría ser un proyecto de verano divertido. :-)fuente
upx
, no funciona bien con todo tipo de ejecutables, por ejemplo: dejó mysqld y mongodb segfaultingNoExtract
definiciones (se pueden definir varias veces), puede resolver ese problema permanentemente. Un ejemplo para actualizar solo los controladores de actualización Realtek nic:NoExtract = usr/lib/firmware/* !usr/lib/firmware/rtl_nic/*
find /usr/lib/firmware -atime +30
encontraría archivos de firmware a los que no se accede en 30 días. Debería ser seguro eliminar esos archivos.TLDR
Primero, ¿qué hay de grande en el sistema?
Esto muestra una lista ordenada de los directorios más grandes en
/
Puede hacer dos niveles hacia abajo:Mi resultado es:
Ignoro
/mnt
(porque se trata de una unidad externa) Hay dos directorios a la mente:var
yusr
. Veamos que hay dentro:Luego, un poco más profundo:
Comencemos con los registros.
Tengo 717mb en
/var/log
.No soy fanático de eliminar directorios al azar, así que hagámoslo de manera limpia:
Dejemos solo 100mb de registros:
Más información aquí sobre cómo configurar journalctl aquí .
Paquetes
Tengo
660M /var/cache/pacman
. Era 1.8gb, pero corrípacman -Sc
para eliminar los paquetes no utilizados. Eliminemos el resto:/ usr / share / locale
Muchos usuarios lo eliminan, o al menos lo limpian. Pero podría ser un problema . Pero pagar bleachbit (siguiente párrafo).
Bleachbit
Limpiador automático . Eliminará muchas cosas, pero en su mayoría fueron locales.
Puedes buscar más cosas para eliminar:
fuente
Total Installed Size: 209.70 MiB
du -xkd1
en el/
directorio, no descenderá a otros puntos de montaje.En el disco de 4GB en mi Eeepc con Ubuntu, ayudó a eliminar algunos archivos locales (de / usr / share / locale) y los archivos de ayuda de Gnome (de / usr / share / gnome / help /). Ambos fueron instalados para idiomas que no uso. Sin embargo, no estoy seguro de si Arch Linux incluso instala todos esos archivos.
fuente
du -hs /usr/share/locale
son unos 300 MB ... ¿puedo simplementerm -rf
los archivos innecesarios?/etc/locale.gen
y vuelve a ejecutarlocale-gen
, debería tener menos configuraciones regionales precompiladas. Si desea liberar más espacio de forma automatizada, puede probar aur.archlinux.org/packages.php?ID=11975 también. (Pero no es compatible y si rompe su sistema, puede conservar las piezas).Sugeriría AUTOMATIZAR mirar sus propios archivos muy antiguos y ver si es necesario y eliminarlos. Esto se puede hacer con dos cosas. Uno escribiendo un
find
comando para buscar archivos muy antiguos. y usar esta salida (quizás canalización) paralograte
guiar para archivar archivos anteriores a 3 meses y eliminar archivos anteriores a 3 meses en el archivo y enviar un correo a 1 día antes de eliminarlo. Para que pueda estar seguro de que no ha perdido ningún archivo importante. Entonces, finalmente, necesitaría los siguientes comandos para lograr lo anterior:No voy a alimentarte con cuchara. He hecho esto antes ha sido bastante exitoso con esto y luego fue descartado porque decidimos ir
nagios
a monitorearlo, ya que estaba más optimizado para hacer ese tipo de cosas en un servidor corp. Creo que si elmail
comando aún no está configurado para usted, es posible que el descanso más difícil sea directo. Todo esto debe hacerse a través de secuencias de comandos bash y ponerlo en el trabajo cron y ejecutarlo cada x días. Aprenda scripts de bash, será muy útil no solo para esto, sino para facilitarle la vida con * nix. Por lo tanto, use su motor de búsqueda de Internet favorito y lea sobre los comandos anteriores y las secuencias de comandos bash. Y átalos y pruébalo. Una vez satisfecho poner a uso regular. Les aseguro que será divertido hacer esto. Aprenderá mucho si no ha hecho esto antes.fuente