Compartir actualizaciones de Arch Linux locamente 🐧

Inicialmente tenia el titulo como tener tu repositorio local, pero realmente lo que compartes son los programas instalado y las actualizaciones, esta necesidad viene principalmente por el motivo que tengo varios dispositivos con Arch Linux y un internet inestable y lento 🥲


 
En el grupo de telegram (Arch Linux en Español) planteaba mi problemática y segundos después ya tenia la solución (Custom local repository) en la poderosa y confiable wiki de Arch 👍


Usando un servidor web 📢

Hay varios métodos disponibles, pero el primero es extremadamente sencillo de implementar y funciona muy bien, consiste en instalar en el PC servidor (main-pc) un servidor web, en la wiki se recomienda estas tres alternativas:
  • Python http.server
  • Darkhttpd, desarrollado en C (Recomendado 👍)
  • Miniserve, desarrollado en Rust (Recomendado 👍) 

 



Instalación

Luego de actualizar, instalamos darkhttpd así: 
$ sudo pacman -S darkhttpd
o si decide por miniserve así:
$ sudo pacman -S miniserve
 

Preparación 

Debemos ejecutar el siguiente comando, que realiza un enlace suave de la base de datos de los repositorios, al directorio cache de pacman 👍
$ sudo ln -s /var/lib/pacman/sync/*.db /var/cache/pacman/pkg/

En el caso de errores en el PC cliente, ejecutar nuevamente este comando lo puede solucionar, tenga esto en consideración.

Levantar el servidor

Si usamos darkhttpd los realizamos así:
$ darkhttpd /var/cache/pacman/pkg/ --no-server-id
 
En el caso de miniserve es así:
$ miniserve /var/cache/pacman/pkg/


Acceder al repositorio local 💻

Este paso lo realizamos en las PC clientes y debemos agregar al archivo mirrorlist (listas de repositorios) a nuestro servidor como primera opción, para el ejemplo usamos el editor nano.
$ sudo nano /etc/pacman.d/mirrorlist

Y agregamos 
Server = http://main-pc:8080
 
Donde:
  • main-pc es el hostname o la IP estática de la pc que hace de servidor en el ejemplo de la imagen es 192.168.1.10 ✌️

Quedando así:
Server = http://192.168.1.10:8080

 

 

Luego actualizamos, como lo hacemos normalmente.

$ sudo pacman -Syu

Para aclarar, este paso se realiza en las PC clientes que se van actualizar 😉


Consideraciones:
  • Antes de compartir, es MUY recomendable actualizar el sistema del PC servidor.
  • Si en el servidor no se encuentra un paquete se usara el siguiente servidor de la lista de mirror y así sucesivamente. 


Python en vez de Darkhttpd 🤔

En la wiki (2022) se recomienda el uso de Python http.server sobre Darkhttpd, pero según mi experiencia he encontrado estos dos inconvenientes:
  • Se crachea seguido, es decir da error y se cierra en medio de las actualizaciones.
  • No permite retomar una actualización luego de que se cierre o de un error, se debe borrar el cache, antes de intentar actualizar nuevamente.
     
De todos modos si desea probar Python se realiza así:
$ python -m http.server -d /var/cache/pacman/pkg/ 8080

Darkhttpd funciona perfecto es estable y se puede retomar una actualización parcial.
 
Revisando la wiki (2024.12) tenemos miniserve como otra opción y funciona excelente como lo hace darkhttpd 👍


Repositorio de tercero Chaotic-AUR

Ya les conté sobre este excelente y muy recomendado repositorio aquí, para que también puedas compartir los paquetes instalados de este repositorio hay que realizar tres cosas.

Primero se debe habilitar los repositorios Chaotic-AUR, como lo indica la documentación oficial en todos los dispositivos.

 

Segundo volver ejecutar el comando que crea los enlaces, con la base de datos en la PC servidor 👍

$ sudo ln -s /var/lib/pacman/sync/*.db /var/cache/pacman/pkg/

 

Tercero agregar de primero la dirección de nuestro servidor, en la lista de repositorios de Chaotic-AUR ubicado en /etc/pacman.d/chaotic-mirrorlist de igual forma que lo realizamos anteriormente, en las PC clientes.

$ sudo nano /etc/pacman.d/chaotic-mirrorlist


 

Palabras finales 👍

Estoy tratando de obtener un mejor internet, aun así continuare usando este método que funciona muy bien, hasta lo use en una re instalación de mi Laptop y fue súper  rápido.

El PC que se seleccione como servidor debería tener la mayor cantidad de paquetes.

Cualquier duda que tengas luego de leer la documentación puedes usar los comentarios, de todos modos coloco nuevamente los enlaces mas importantes:


Actualizado [2024.12]

Comentarios

Entradas más populares de este blog

Super Mario RPG 🎮