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)

http://www.youtube.com/watch?v=u4w7XuinZDI


14 comentarios

  1.   truko22 dijo

    Interesante 😀

  2.   Fega dijo

    Muy interesante!

  3.   elruiz1993 dijo

    Se ve interesante, me pregunto por qué Arch y Ubuntu pueden tener todos los paquetes del universo y las otras distros no.

  4.   yerkorn dijo

    Muy buen tema, ademas que se ve todo detallado al realizar la configuracion,
    y el mejor detalle, que en mi opinion, fue lo mejor, fue cuando buscaste la solucion al error que te salio al compliar, ya que uno no sabe que pasa al encontrarse con estos tipos de errores y como solucionarlo, y aca demuestras con el simple echo de buscar las cosas sale lo que hay que hacer.

  5.   cr0ss dijo

    Buenisimo

  6.   patodx dijo

    que manera de aprender GNU/Linux en esta página. gracias..

  7.   sobrao72 dijo

    Muy buena entrada, a ver si alguien se anima a poner alguna parecida para los debianadictos.
    En cuanto a la música…. AC/CD está muy bien, pero igual con Marilyn Manson va un pelín mejor… :-/

  8.   Fega dijo

    Se puede usar como server algún alojamiento en la nube? específicamente Dropbox

    1.    x11tete11x dijo

      todo suyo: http://i.imgur.com/5DVzCXm.png

    2.    Yoyo dijo

      Si, de hecho, cuando estaba en Pardus y Pisi Linux, teníamos el repo de la comunidad en Dropbox.

    3.    Fega dijo

      Perfecto! 😀

  9.   Yoyo dijo

    Ahora que soy UniDistro, a ver si me animo a probarlo en KaOS 🙂

    Excelente aporte 😉

    1.    x11tete11x dijo

      proba sin miedo, que inicialmente el repo local “manual”, lo hice bajo KaOS xD

  10.   userarch dijo

    Un trabajo muy util para neofitos como Yo, y por eso te agradezco mucho el interes que tuviste para publicarlo.
    Ok, creo que ya comprendo lo que quieres transmitir, esto de la “repo local”, ahorra tiempo, si concideramos instalar archlinux o una derivada; ya que por ejemplo el servidor de archlinux.org recientemente a sido establecido en creo 56 kb/s para descargas. Pero si tenemos una repo local (servidor de paquetes local, eso ¿creo?) la instalación será echa sin la dependencia de estar conectado a internet.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.