Emerge en memoria

Cuando uno esta instalando algún paquete en Gentoo utiliza el sistema portage. La llamada de portage es a travéz de emerge. A grandes rasgos lo que hace emerge es bajar el codigo del paquete (fuente) y luego lo compila (ojo a grandes rasgos, mas información en el foro).
Cuando baja el código fuente del programa lo compila y luego lo instala, una manera de que esa compilación se realize más rápido es compilando todo en la RAM. Para ello se debe montar en memoria el directorio de trabajo (temp) de portage que esta en /var/tmp/portage. Para realizar toda el emerge más rápido lo mejor es utilizar la siguiente script que hace todo solo.

#!/bin/bash
MEMSIZE=850M
mounted=false

. /sbin/functions.sh

mounttmpfs() {
mount -t tmpfs tmpfs -o size=$MEMSIZE /var/tmp/portage
mounted=»true»
}

compile() {
einfo «emerging ${*}»
emerge ${*}
}

unmount() {
ebegin «unmounting tmpfs»
umount -f /var/tmp/portage
eend $?
}

ebegin «Mounting $MEMSIZE of memory to /var/tmp/portage»
if [ -z «$(mount | grep /var/tmp/portage)» ]
then
mounttmpfs
else
eerror «tmpfs already mounted!»
exit 0
fi
eend $?

compile ${*}

if [ -n «$mounted» ]
then
unmount
fi

La linea MEMSIZE definida al principio se le dice que cantidad de memoria RAM va a utilizar para el mount.
Yo tengo 1gb y utilizo 850mb de RAM para la compilación.
Es realmente rápidisimo y se nota mucho la compilación.
Lo mejor es colocar este script en un archivo temerge y copiarlo en /usr/local/bin y listo, cada vez que se tenga que compilar algo de llama con temerge.

Esta información fue sacada del wiki de gentoo

Technorati Tags: , , , ,