[Solar-general] uinstall, unos scripts para administrar paquetes genericos, y fundamentalmente propios, hacer backup y eso.

Diego Saravia dsa en unsa.edu.ar
Vie Jul 23 16:51:47 CEST 2010


Hace un par de meses me pidieron que vea como instalar paquetes en
ututo sin usar emerge, uinstall seria
una primera aproximacion al problema, en el marco de sumapack
(multidistro), permitiendo la instalacion
y remocion de paquetes generados desde paquetes fuente originales  y
con la ventaja de permitir
el manejo de paquetes de datos de usuario ademas de software. No le vi
problemas de interoperacion con
los sitemas de paqueteria de las distros.

Es todavia un software bastante precario, pero creo que puede ser util

Con algo de rediseño y mucha correccion de errores podria ser util a mucha gente

Uinstall
========
Copyright: copyleft;  Diego.Saravia en gmail.com 2010
AGPLv3+

Ututo Install es un conjunto de scripts integrados en sumapack para
administrar conjuntos de archivos, denominados paquetes, en computadoras.
Puede instalar, asignar, desinstalar, desasignar, y extraer archivos
definiendolos como miembros de un paquete.

Es un programa experimental en sus primeras versiones, nada de su
funcionamiento esta garantizado y puede destruir tu computadora.

En la seccion FUNCIONES mas informacion

PROBLEMAS
=========
Es una primera version y todavia se rasca su oreja izquierda con el pie
derecho. Hay mucho para mejorar internamente, pensar, analizar y optimizar.
Tarda una hora en instalar un gentoo que cabe en un cd de 700Mb. Para
operaciones de paquetes individuales es tolerable.
Falta tener un sistema comprensivo de test.


INSTALAR
========
Descargar de:
http://sumapack.org/download/uinstall-0.1.tar.gz
Bajar, desempaquetar, y ejecutar sudo make install para instalar
Probar siguiendo el tutorial indicado mas abajo con
bash t/test-1.sh

#####################################################
wget http://sumapack.org/download/uinstall-0.1.tar.gz
tar -zxvf uinstall-0.1.tar.gz
cd uinstall
sudo make install
bash t/test-1.sh
#####################################################

TUTORIAL
======
Instalar el paquete fortune. Que esta en la distribucion.
Lo mas probable es que no funcione en su maquina por una cuestion
de que no instala dependencias. (No es la mision de uinstall)
No hay demasiado riesgo de romper algo importante
si ya esta.

Ubicados en el directorio donde desempaqueto (uinstall), solo
para ubicar el paquete a instalar:

1)
sudo uinstall  -i t/fortune-mod-starwars-0.1.tbz2

si fortune ya esta instalado, protesta, se puede proceder igual con force

sudo uinstall -f -i t/fortune-mod-starwars-0.1.tbz2

puede mirar /var/db para ver lo realizado

con

2) Eliminar
A) sudo uinstall -r fortune-mod-starwars-0.1.tbz2

lo vuelvo a instalar con: sudo uinstall  -i t/fortune-mod-starwars-0.1.tbz2
B) sudo uinstall -r fortune-mod-starwars

puedo eliminarlo

3) Desasignar
lo vuelvo a instalar con: sudo uinstall  -i t/fortune-mod-starwars-0.1.tbz2
y puedo desasignarlo con:

 uinstall -d fortune-mod-starwars

para deasignarlos archivos del paquete, ver /var/db/archpack, sin
eliminar los archivos

4) Extraer
Previamente debemos instalarlo de nuevo. Ejecutando

sudo uinstall -i t/fortune-mod-starwars-0.1.tbz2  se instala (si bien
choca con archivos preexistenetes sabe que no hubo cambio)

ahora podemos probar, como hacer un backup del paquete (extraerlo)

uinstall -b fortune-mod-starwars

creara en el directorio donde este parado un subdirectorio
fortune-mod-starwars-0.1.BACK

con los archivos del paquete adentro de ROOT y la metainformacion en INFO

6) asignar


creemos dos archivos en /tmp

echo Ayer > /tmp/test1.i
echo Hoy > /tmp/test2.2

definamos en t un paquete del tipo "Lista de archivos"

echo /tmp/test1.i > t/test89.lf
echo /tmp/test2.2 >> t/test89.lf

ahora probemos la asignacion

uinstall -a t/test89.lf

podremos trabajar con ese nuevo paquete de muchas maneras, exportarlo, etc.

En t hay un archivo que ejecutando bash t/test-1.sh hace estas pruebas
FUNCIONES
=========
Sus operaciones basicas son instalar+asignar, asignar, remover+desasignar,
desasignar y extraer (back) Paquetes de una computadora.
Ademas puede informar sobre los paquetes asignados,
buscarlos e imprimir estadisticas.   Tambien puede aumentar la version de un
paquete asignado.

Dado un paquete definido mediante:

 a) un archivo tipo tar en sus diferentes compresiones,
 b) paquetes deb, rpm, o similares,
 c) un directorio conteniendo archivos
 d) un archivo conteniendo un listado de archivos previamente existente en la
    computadora

Se puede instalar los paquetes del tipo a, b y c en el sistema raiz de tu
computadora o en algun subdirectorio (pr ej. una imagen de otro sistema),
estableciendo ademas que esos archivos pertenecen a ese paquete.

O en el caso d, se puede asignar esos archivos a un paquete

A partir de tener un conjunto de archivos de tu PC instalados y asignados a un
paquete se puede: desinstalarlos, desasignarlos, y extraerlos (back) a
un directorio.
O incrementar el numero de version de un paquete que tiene archivos asignados.

Al operar sobre cada archivo realiza numerosas comprobaciones sobre el mismo,
verificando si cambio, desde su instalacion, salvandolo si se va a remplazar,
por ejemplo.

El sistema convive con otros sistemas de paqueteria especificos de cada
distribución gnu/linux.


Es util:

*  para quien instala paquetes desde las fuentes, luego de hacer un
"make DESTDIR=directorio install", uno puedo instalar en el sistema estos
archivos con  uinstall.

*  para probar paquetes de otras distros en una computadora.

* para definir archivos propios como pertenecientes a un paquete y con eso
  hacer backup y moverlos comodamente a repositorios u otras computadoras

Usa una base de datos plana en ascii, que vincula archivos con
paquetes, ordenada con look.
Tiene por paquete un log historico de lo que se hizo con cada archivo.
Se guarda mucha otra metainfo, segun disponible.

La integracion con sumapack esta en desarrollo, lo que permitira generar
paquetes de distinto tipo, con archivos extraidos, entre otras cosas.
Por ejemplo instalar desde tbz2 y generar un deb o rpm, al estilo alien.



-- 
Diego Saravia
Diego.Saravia en gmail.com
NO FUNCIONA->dsa en unsa.edu.ar



Más información sobre la lista de distribución Solar-general