El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

arch compartir paquetes

| Comments

No desde cuando, pero por fin, un sueño echo realidad en ArchLinux. Revertir un paquete de su forma instalada, a su forma de paquete. Esto puede no resultar algo novedoso para el que tenga internet como algo cotidiano, pero para los cubanos de a pie, resulta una verdadera novedad.

Digamos que mi socio necesita instalar nginx en su arch, misma arquitectura que el mío. Simplemente, le genero el paquete a partir de mi instalación y listo.

“bacman en acción”
1
2
3
4
5
6
7
8
9
[root@samsung ~]# cd /var/cache/pacman/pkg/
[root@samsung pkg]# bacman nginx
==> Package: nginx-1.8.1-1
  -> Copying package files...
    -> Generating .PKGINFO metadata...
    -> Generating the package...
  ==> Done.
[root@samsung pkg]# ls nginx*
nginx-1.8.1-1-x86_64.pkg.tar.xz

Pues bacman es la respuesta. Ahora se puede regresar un paquete a su estado; digamos “pristino”.

¡¡OJO!! TUS ficheros de configuración, también se empaquetan.

Usualmente solía mantener en mi caché los paquetes necesarios para llevar a cabo una instalación de archlinux usando mi laptop; pero con este nuevo método, la cosa cambia bastante. Ahora solo debo cargar con el “.iso”

Mi proxima idea es reconstruir el grupo base completo dentro de la cache y luego con repo-add crear un mirror, capaz de llevar a cabo una instalación de sistema.

De momento quiero probar este script:

“pristine.sh”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

# cambiate al directorio de cache
cd /var/cache/pacman/pkg/

# itera por los paquetes del sistema base
for pkg in $(pacman -Qeg base|awk '{print $2}'); do

   # háblate
   echo $pkg '>' $(pacman -Qi $pkg|grep Description|cut -d : -f 2)

   # reviértelo
   bacman $pkg 2> /dev/null > /dev/null

done

# crea el repo
rm /var/cache/pacman/pkg/custom.db.tar.gz
repo-add /var/cache/pacman/pkg/custom.db.tar.gz /var/cache/pacman/pkg/*.pkg.tar.xz

Tendré que probar a instalar usando mi cache como repo. Poniéndole a la máquina una source como esta:

“pacman.conf”
1
2
3
[mirepo]
SigLevel = Optional TrustAll
Server = http://localhost:8080

Nota para los imbéciles: Cambiar localhost por la ip de la máquina que está compartiendo la caché.

Y para servir tu cache como repo, puedes usar darkhttpd

“darkhttpd”
1
darkhttpd /var/cache/pacman/pkg/ --chroot --port 8080

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

Comments