X

Las distros que usan Pacman están de suerte

Buenas. Como lo prometido es deuda, a continuación les entrego el post que pondrá a trabajar los cores de sus máquinas.

¿Qué es MakePKG?

MakePKG es un script que automatiza la construcción de paquetes. Estos sirven al gestor de paquetes Pacman, que los instala. Es decir, así como, por ejemplo, apt-get o aptitude instalan paquetes «.deb»Pacman instala paquetes «.pkg.tar.xz». MakePKG es aquel script que usamos para que mediante un PKGBUILD generemos un «.pkg.tar.xz» para luego instalarlo con Pacman.

¿Para qué acelerar el funcionamiento de MakePKG?

Bien, ahora uno se preguntaría, ¿para qué hacer lo que describe el post? La respuesta es sencilla. Ya sea desde AUR, CCR, KCP, o similares, o desde ABS, lo que manejamos son PKGBUILDs. Usualmente, en vez de utilizar directamente MakePKG, interactuamos mediante Yaourt, Pacaur, etc, por lo que, al acelerar la velocidad de MakePKG, aceleraremos la velocidad con la que instalamos software desde esos repositorios.

Acelerando makepkg

Para lograrlo, lo que vamos a hacer es que MakePKG utilice todos los núcleos de nuestro procesador para las tareas que realiza, entonces:

1) Editamos el archivo makepkg.conf:
sudo nano /etc/makepkg.conf
2) Especificamos que MakePKG use más threads para compilar
MAKEFLAGS="-j< Número de núcleos (con Hyper Threading <HT> en caso de tenerlo) + 1 >"

En mi caso hice las pruebas sobre un FX-8320 el cual posee 8 núcleos, con lo que MAKEFLAGS quedaría así:

MAKEFLAGS="-j9"
3) Especificamos que MakePKG use más threads para la compresión

Ahora buscamos la linea correspondiente a la compresión en .xz y le agregamos el parámetro “–threads=<Numero>” siguiendo exactamente la misma lógica del paso anterior, en mi caso queda así:

COMPRESSXZ=(xz -c -z - --threads=9)
4) Finalmente guardamos el archivo tocando Ctrl + x. Nos preguntará si deseamos guardar el archivo, a lo que le decimos que si, y con el mismo nombre que tenia al abrirlo.

Resultados finales

A continuación les mostraré un video comparativo entre ambas configuraciones, pero antes voy a explicar el contexto en el que se realizó dicho video.

Yo poseo un procesador i3-5005U en mi notebook, el cual dispone de 2 núcleos + HyperThreading. Si bien la diferencia entre configurar el MakePKG para que use todos los núcleos, vs la configuración por defecto, que usa un solo núcleo, era apreciable, no era abismal, por lo que preferí hacerlo sobre la PC de sobremesa más «gamer» de mi hermano. Tiene una pequeña partición de GNU/Linux para aquellos momentos en que revienta el Windows y se necesita usar la máquina sí o sí, o recuperarla. Mi hermano es un usuario «normal», por lo que no podía instalarle un Archlinux. Está corriendo un Ubuntu. Entonces, lo que hice fue instalar Docker y me armé un pequeño dockerfile de un Archlinux, en el cual compilé SimpleScreenRecorder mediante MakePKG. Me evité así varias capas de virtualización y aproveché el procesador mejor. Aquí tenéis el resultado:


La imagen de cabecera se llama Makepkg-Not-War-Wallpaper-Series, y se licencia bajo Attribution-ShareAlike 3.0 Unported. Incluye el logotipo de Arch Linux, que disfruta de la licencia CC-BY-SA, cortesía de Ubuntu Project, especificada en este sitio web.

La canción se llama «Aggressor» y ha sido recogida de Free Stock Music. Su licencia permite ser usada sin ninguna limitación y puede verse aquí.

El vídeo ha sido grabado por el autor y es su propietario. Ha licenciado el vídeo con la misma licencia que ofrece el blog, Creative Commons Attribution-ShareAlike 4.0 International License. Esta licencia viene a decir que puedes usar el archivo para cualquier cometido siempre que indiques quién es su autor y aportes el nombre de esta licencia, para que las personas que lo vean sepan cómo compartirlo con otras correctamente.

0 0 votos
Article Rating
Tete Plaza: Un tipo relativamente "normal" con mucho humor, casi Ingeniero en Sistemas de Computación, rockero a morir, fanático de Ironman, Starwars, y con una extraña fascinación por Linux, y cuanto cacharro tecnológico ande dando vuelta ( tengo 2 mascotas, la RPI I y la RPI II, y mi notebook se llama Jarvis :P )

Ver comentarios (10)

  • LOL...

    Llevo bastante tiempo usando pacman y no sabía donde se podían configurar y modificar los parametros de MakePKG.

    Muchas Gracias :)

    PD: Le falta una barra a:

    sudo nano /etc makepkg.conf

    sería

    sudo nano /etc/makepkg.conf

  • Llevo usando este truco desde aquellos tiempos que lo dejaste en el otro lado. Buen tutto tete...

    • ésta vez anduve leyendo más, si comparas dichos artículos vas a ver que el de DL, no tiene la parte del compressxz (recuerdo que había un pack de iconos que se tardaba un monton en "compilar", lo pongo entre comillas porque lo que tardaba es justamente la compresión de todos los archivos a .pkg.tar.xz), con la que diciéndole que use todos los núcleos ahí también, te ahorras más tiempo aún

  • che, te pregunto desde mi "ignorancy"...

    Esto de poner todos los nucleos en la config a laburar no es bueno si queres hacer mientras tanto alguna otra tarea que requiera un CPU considerable no?
    Digo, es una opción dedicada totalmente al momento de compilacion no?

    P.D.: buena info, pero como tengo un mononucleo AMD atholn.. pues lo usare dios sabra cuando!! jajaja!!

    • Efectivamente estás en lo cierto, pero en general cuando uno instala software o actualizas, querés que tarde lo menos posible, en definitiva va a gusto del consumidor, por ejemplo compilar firefox, que usualmente son como 4hs con un procesador potente, con la configuración default, no se, te tirarías como 8 o 12 hs o quizá más jajaj

  • Soy usuario de Linux desde hace unos años pero solo he usado sistemas basados en Debian y paqutería .deb, pero ahora estoy pensando en cambiar a a Manjaro, y al leer el artículo me ha surgido unas dudas:

    Según lo que he entendido ¿makepakg solo sirve si compilamos paquetes desde el código fuente, no?

    Los paquetes de los repositorios oficiales de una distro basada en Arch como Majaro supongo que solo tendrán paquetes binarios, no?

    Si es así, y solo instalamos software mediante pacman de esosrepositorios oficiales, no tendría porque utilizarse makepkg, no?

    Perdón por estas preguntas de novato, pero al leer este artículo he intentado encontrar las respuestas a estas preguntas en la wiki de Arch y no me he quedado seguro de como funcionaba...

  • Hola,buen tuto!! Yo también poseo un ocho núcleos y la duda que me surge es, en vez de los ocho podría poner, por ejemplo la mitad o seis? Si es así, esto sería: MAKEFLAGS="-j5" y COMPRESSXZ=(xz -c -z - --threads=5) para la mitad? Gracias.

Artículos relacionados

Este sitio utiliza cookies