ccache en Slackware

Cuando un usuario de Slackware añade software a su sistema normalmente debe compilarlo, o bajar paquetes de algún lugar; siempre es mejor administrar lo que se instala por medio de la paquetería de slackware para que podamos desinstalar y actualizar fácilmente y sin problemas.

El problema viene cuando no disponemos de un Slackbuild, ya sea para la versión que necesitamos o por que simplemente no existe un paquete para el software; una solucion es hacer el paquete mediante makepkg; la mas recomendable es hacer nuestro propio Slackbuild y solo modificarlo para cada versión del software que instalemos.

Esto trae siempre otros problemas, ya que si por algún motivo no pusimos algún parámetro al configure o no configuramos adecuadamente el paquete, la recompilación del mismo nos lleva mucho tiempo, con lo cual hacer Slackbuilds de programas muy grandes suele ser tedioso.

La mejor solución es utilizar ccache, que es un programa que nos guardará una cache de lo que compilemos; con esto aceleraremos la compilación de programas, ya que si el codigo a compilar es identico a lo que ccache ya tiene, simplemente será reemplazado y solamente compilara lo nuevo.

Ccache no solo nos ayudará en la compilación de paquetes de software que descarguemos de internet; si trabajamos en el área de desarrollo de software basado en lenguaje C o C++ tendremos a la mano un buen programa que nos ahorrará mucho tiempo en la compilación, mas a la hora de eliminar bugs en programas grandes.

Configurando ccache

Lo primero es darle una lectura a la página de manuales de ccache, luego podemos proceder a gener lo que necesitamos.

Normalmente podemos tener ccache para uso individual de los usuarios del sistema o bien utilizar una sola cache para todos los usuarios. Lo que haremos a continuación será para configurar una cache compartida por todos los usuarios.

Lo primero es generar un grupo, el cual tendrá los permisos para utilizar la cache, en este caso lo llamaremos ccache y añadiremos a los usuarios que necesitemos a este grupo:

# groupadd ccache

Para añadir al usuario a el grupo, podemos usar kuser o el comando usermod o bien editar el archivo /etc/group

Una vez creado el grupo debemos crear la carpeta que nos servirá para compartir ccache y  preparar nuestro archivo de logs:

# mkdir /var/cache/ccache
# touch /var/log/ccache.log

A cada uno le debemos dar los permisos de escritura para el grupo

# chgrp ccache /var/cache/ccache
# chgrp ccache /var/log/ccache.log
# chmod g+wrs /var/cache/ccache
# chmod g+wr /var/log/ccache.log

Ahora procederemos a descargar y copiar a la carpeta /etc/profile.d este archivo -> ccache.sh

Le asignamos los permisos de ejecución

# chmod a+x /etc/profile.d/ccache.sh

Esto nos colocará las variables de entorno para cada usuario, ya que estas son cargadas al inicio de cualquier sesión; éstas variables son necesarias para que ccache pueda compartir los archivos.

Con todo en su lugar procedemos a configurar ccache para que capture todo lo que se compile; para ello necesitamos redireccionar el acceso a los ejecutables de gcc, g++, etc. y de esta manera todo lo compilado pasará primero por ccache antes de compilarse.

Para ello necesitamos copiar el ejecutable de ccache a /usr/local/bin y luego crear unos enlaces simbólicos hacia ccache con los nombres de los compiladores que vayamos a utilizar.

# cp /usr/bin/ccache /usr/local/bin/ccache
# cd /usr/local/bin
# ln -s ccache gcc
# ln -s ccache g++
# ln -s ccache cc
# ln -s ccache c++

Para verificar que todo esta bien podemos usar el comando which para corroborar la dirección de cada comando

# which g++
/usr/local/bin/g++

Con esto configurado, reiniciamos sesión y ya tendremos disponible ccache para nuestros proyectos de compilación =)

Enlaces:
HOWTO: Slackbuilds -> slackbuilds.org/howto
COMO escribir Slackbuilds -> open-eslack.org/wiki/index.php5?title=Slackbuilds
COMO usar makepkg -> open-eslack.org/wiki/index.php5?title=Paquetes_para_slackware
HOWTO write Slackbuilds -> www.slackwiki.org/Writing_A_SlackBuild_Script
LinuxPackages -> linuxpackages.net
Slacky -> slacky.eu

Etiquetas: , , , ,

7 responses to “ccache en Slackware”

  1. Chaman says :

    Exelente post dhabyx, muy bien explicado ahora a usar ccache \o/

  2. Jorge says :

    Esta bueno el post me dejaste pikado cuando me contaste de este rollo voa ver como lo jalo en mi debian

  3. dhabyx says :

    @Jorge: siempre sirve ccache😀 en debian ha de venir ya preconfigurado o quizá no.

  4. S1ack0 says :

    Y Que hay del espacio en disco que ocupa el cache que se crea para cada compilacion?
    Si se compila demasiado soft o soft grande estariamos gastantando cientos de megas en eso, o no es asi?
    Saludos

  5. dhabyx says :

    @S1lack0: ccache tiene un límite de espacio de disco que utiliza, en slackware por defecto viene configurado a 1GB, por lo que al llegar a ese límite simplemente va desechando lo que no sirve

  6. josemaria says :

    Buenas, estoy intentando realizar unos proyectos en qt. pero me estoy enfrentando a algunas dificultades en la compilacion del programa en windows.

    en entornos linux todo funciona perfectamente, pero no asi generando los .exe de windows me gustaria poder consultarle algunas cosas sobre qt. mi correo es josemaria.tar.gz@gmail.com si puede comunicarse conmigo para poder explicarle mas detalladamente los inconvenientes.

    desde ya muchas gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: