Noticia Repositorio local Chakra Linux (Aplicable a distros que usen pacman)

Introducción


Buenas, acá otro post, si se quiere “parecido” al que hice con anterioridad para Archlinux, esta vez vamos a hacer algo muy similar, con la diferencia, de que si bien yo lo hago bajo Chakra Linux, es aplicable a todas las distros que usen pacman como gestor de paquetes

Requisitos

  • Paquetes para compilar, suele ser los grupos terminados en devel (para Arch seria base-devel)
Armando la estructura del repositorio


Para esto es necesario crear (para ser ordenados) 2 carpetas dentro de nuestro repositorio, en mi caso voy a crear mi repo x11tete11x en: /home/x11tete11x/.repo/x11tete11x y las carpetas que contendrá serán: pkgbuilds y pkgs-x86_64

Añadiendo nuestro repositorio a Pacman


Editamos el archivo /etc/pacman.conf y añadimos nuestro repo con la siguiente información:

[NombreRepo]
SigLevel = <Nivel de seguridad>
Server = <Ruta a la carpeta donde esta la DB>

ejemplo de como tengo configurado mi repo:

[x11tete11x]
SigLevel = Optional TrustAll
Server = file:///home/x11tete11x/.repo/x11tete11x/pkgs-x86_64
Metodo Manual

Creando la DB para el repositorio


Acá hacemos uso de la instrucción repo-add para generar la base de datos del repositorio

repo-add /ruta/al/repo/carpetaDepkgs/<nombreRepo.db.tar.gz> /ruta/al/repo/carpetaDepkgs/*.pkg.tar.xz
Hay que tener ya algún paquete dentro de la carpeta de pkgs, porque sino repo-add no podrá crear la DB
Compilando paquetes


Aca mas que los pasos, me interesa dar mas “guidelines” o consejos, los pasos son:

  • Bajar o armar el PKGBUILD del paquete deseado a la carpeta de pkgbuilds, y entran en la misma
  • Adaptar el PKGBUILD para que se ajuste a los nombres de dependencias de tu distro
  • Ejecutar makepkg
  • Copiar el binario a la carpeta de pkgs
  • Regenerar la DB con repo-add
  • Refrescar los repositorios de pacman con pacman -Sy
Consideraciones al compilar


Antes de ponerse a compilar a tontas y a locas verifiquen que tengan todas las dependencias en sus repositorios oficiales, porque si empezamos a duplicar paquetes en nuestros repositorios y sistema, podemos generarle inconsistencia, por ejemplo.

Mmas adelante voy a acompañar este post, con un video tutorial mostrado todo lo que aquí se expone, en particular en Chakra esta el paquete “toluapp” y en Arch se llama “tolua++” por lo tanto si queremos compilar un paquete en Chakra (que por ej trajimos de Arch) que tiene como dependencia tolua++, NO tenemos que compilar tolua++ simplemente modificamos el PKGBUILD, para que las dependencia del mismo pase a ser toluapp.

Esa ha de ser la consideración mas grande a contemplar, después, es cuestión de ante cualquier eventualidad, googlear un poco para modificar el PKGBUILD para que compile (en el ejemplo que muestro en el vídeo, están todas estas cuestiones, incluso un error en compilación, posteriormente solucionado)

Prestar atención a las consideraciones al compilar, ya que como se expuso, así se generan buenos paquetes acordes a la distro
Método Automático


El método “automático” consiste en un sencillo script, que realicé para automatizar la tarea de compilar y agregar paquetes al repositorio (no es ni de cerca tan completo como el local-repo de Arch pero cumple con su cometido) el código del mismo es el siguiente:

#!/bin/bash

REPONAME=x11tete11x
PATHPKG=/home/x11tete11x/.repo/x11tete11x/pkgs-x86_64/

makepkg && cp *.pkg.tar.xz ${PATHPKG} && rm *.pkg.tar.xz && repo-add ${PATHPKG}/${REPONAME}.db.tar.gz ${PATHPKG}*.pkg.tar.xz

como observarán es extremadamente sencillo y para utilizarlo tienen que hacer lo siguiente:

  • Guardan ese código con el nombre que quieran (en mi caso lo llame chakra-repo)
  • Configuran las variables REPONAME, con el nombre de su repositorio, tiene que ser el mismo que ponen en el pacman.conf, y la variable PATHPKG con el directorio donde se encuentran todos los pkgs
  • Le dan permisos de ejecucion:
    chmod +x nombreDeSuScript
  • Lo copian a /usr/bin/

Para utilizarlo, luego de que bajaron o armaron su PKGBUILD, en vez de ejecutar makepkg ejecutan el script (en mi caso chakra-repo) este automáticamente compila el programa copia el binario a la carpeta de binarios, y actualiza la BD mediante repo-add, por lo que luego de ejecutar el script, solo basta hacer un pacman -Sy <paqueteRecienCompilado> para instalar el paquete en cuestión.

A continuación, les dejo un vídeo tutorial donde se ve todo esto que expuse, en acción (PD: si escuchan AC/DC la maquina compila mejor xD jajaj)


Watch this video on YouTube.


uM8oNc6sGI4


Continúar leyendo...