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:
- eliminar todas las configuraciones regionales innecesarias (ya cubiertas)
- eliminar cualquier archivo de firmware que no sea necesario para ejecutar su sistema (desde
/usr/lib/firmware
)
- eliminar cualquier módulo del núcleo que no sea necesario para ejecutar su sistema (desde
/usr/lib/modules/...
)
- eliminar cualquier
.a
archivo /usr/lib
(solo si nunca usa el sistema para compilar software. nota: esto incluye usar makepkg
)
- eliminar todo
/usr/include
(solo si nunca usa el sistema para compilar software)
- eliminar documentación innecesaria de
/usr/share/doc
y/usr/share/info
- (IDEA MUY MALA, a menos que sea para un servidor) eliminar páginas de manual
/usr/share/man
- (también es una mala idea) eliminar descriptores de terminal
/usr/share/terminfo
innecesarios y archivos de zona horaria innecesarios de/usr/share/zoneinfo
- (PELIGROSO) ejecutándose
strip *
en todas las carpetas que contienen archivos binarios ejecutables ( /usr/bin
y /usr/sbin
)
- (en situaciones extremas) usando una herramienta como
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 usar upx
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 como rm *\@*.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
. La libgo
biblioteca viene con gcc-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 y locale.alias
. Para mí aquí en los EE.UU., manteniendo en_US
e locale.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
o diet-libc
o algo similar. Ese podría ser un proyecto de verano divertido. :-)