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
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)
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)
Interesante ๐
Muy interesante!
Se ve interesante, me pregunto por quรฉ Arch y Ubuntu pueden tener todos los paquetes del universo y las otras distros no.
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.
Buenisimo
que manera de aprender GNU/Linux en esta pรกgina. gracias..
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… :-/
Se puede usar como server algรบn alojamiento en la nube? especรญficamente Dropbox
todo suyo: http://i.imgur.com/5DVzCXm.png
Si, de hecho, cuando estaba en Pardus y Pisi Linux, tenรญamos el repo de la comunidad en Dropbox.
Perfecto! ๐
Ahora que soy UniDistro, a ver si me animo a probarlo en KaOS ๐
Excelente aporte ๐
proba sin miedo, que inicialmente el repo local ยซmanualยป, lo hice bajo KaOS xD
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.