[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Como convertir archivo .run a .deb?



On Tue, Nov 04, 2008 at 08:00:17AM -0600, Victor wrote:
> Victor H De la Luz escribió:
> > El nombre tecnico es "debianizar" tu paquete.
> > Prueba con leer:
> > http://es.wikipedia.org/wiki/Deb
> > olvidate de tu .run y crea un "paquete debian"!
> 
> Eso es lo que pretendo, tengo este archivo que instala un programa, lo
> quiero debianizar para manejar mejor la instalación y desinstalación.

No hay ni habrá una receta para esto, por que lo que estás queriendo
hacer es analizar el comportamiento de un programa arbitrario, que es
a fin de cuentas lo que hay en tu .run.

A grandes rasgos, y pasando por alto multitude de detalles:

1. Averigua exáctamente QUÉ hace el .run. ¿Expande un paquete binario
incluido en linea? ¿Conecta a algún servidor remoto y lo descarga?
¿Obtiene secuencias de /dev/random hasta que alguna es, por casualidad, un
ejecutable válido?

   Esta va a ser, probablemente, la parte más difícil, por que seguramente
el archivo en cuestión es un ejecutable que hace cualquier cantidad de cosas
y además se toma molestias para ocultarlo. Lo digo por un par de experiencias
dolorosas en el caso.

   En última instancia, genera un entorno completamente limpio, instala ahí,
revisa todo con cuidado para ver qué cambió. Una máquina virtual puede ayudar
con esto.

2. Averigua como convencer al .run de hacer lo que hace con configuraciones
"decentes". Por ejemplo, instalar sus archivos en las partes correctas del
sistema, separar los pasos de configuración de los de instalación en sí,
utilizar una configuración "default" sensata si no hay un usuario respondiendo
lo que sea que pregunta al ejecutarse.

   Alternativamente, averigua de dónde saca lo que termina instalando, y averigua
tú como ponerlo en las partes adecuadas sin ayuda del .run en sí.

3. Ya que tengas todo lo anterior, automatizalo: Escribe un script (de preferencia
shell o make) que ejecute el .run en un entorno vacío, generandole una configuración
mínima decente, y convenciendolo de instalar todo dentro de arbol de directorios
temporal. Esto puede ser desde tan sencillo como

  ./el-archivo.run --install-dir=/un/dir/temporal

hasta tan complicado como generar al vuelo una máquina virtual, instalar en ella y
extraer de ahí lo generado. Imposible decir.

4. Por ese script en un directorio, haz un debian/rules que lo ejecute. Disfruta.


Reply to: