Bueno, imposible no es, por algo existe firefox portable...

Todo depende de cuanto empeño le pongas a tu programa (y cuanto quieres
que termine pesando el mastodonte jajaajj).

Si necesitas crear un programa que funcione en la mayoría de las
distribuciones de una misma plataforma debes minimizar el uso de
recursos externos.

Si quieres crear una aplicación cross-platform entonces usas máquinas
virtuales e intérpretes (java, python, php, etc).

En algunos desarrollos grandes como asterix, vmware o steam la solución
ha sido crear su propia distribución y pedirle al usuario que destine
una partición para su sistema.
-- 
----
 ____________________________________
/ Un boomerang que no funciona es un \
| palo.                              |
|                                    |
\ -- Bill Kirchenbaum.               /
 ------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
 ______________________
< Mi extensión es 2273 >
 ----------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/




El mar, 12-04-2016 a las 20:28 +0200, Juan José López escribió:

> El Lunes, 11 de abril de 2016 21:50:39 Ala de Dragón escribió:
> > Hola :D
> > 
> > Ando un par de días preguntándome acerca de unas dudas en cuanto a compilar.
> > 
> > Supongamos que tengo un sistema, llamémosle debian 7, que tendrá lo
> > necesario para compilar un programa. Por ejemplo firefox.
> > Si lo compilo desde las fuentes lo hago con las versiones de lasa
> > librerías y programas que están instaladas en mi computadora. Con lo
> > que en un debian 8 no funcionara bien.
> > entonces, ¿como se hace para compilar un programa, empaquetarlo en un
> > tar y hacer que funcione en cualquier debian?
> > Es simple curiosidad
> > 
> > Salu2s
> > 
> > :)
> 
> Como ya te han respondido, eso es poco menos que imposible. Las combinaciones 
> de ( librerias + programas + archivos auxiliares  ) son demasiadas.
> 
> Si quieres ALGO mas de portabilidad, puedes utilizar un lenguaje 
> interpretado, 
> como perl o incluso bash, que te darán algo más de juego. En Debian, python 
> puede no estar instalado, pero bash y perl lo están siempre, porque el propio 
> sistema de paquetes de Debian los usa.
> 
> Hay (o hubo) intentos de crear aplicaciones auto-empaquetadas, tipo archivo 
> .ISO, y que el kernel ejecuta con ayuda de binfmt. Registras el controlador 
> adecuado, y puedes empaquetar lo que quieras y lanzarlo como quieras.
> 
> También puedes utilizar aplicaciones auto-descomprimibles; son scripts de 
> Bash 
> que tienen 'embebido' un archivo .tar, que se descromprime al ejecutar el 
> script. Creo que los paquetes originales de los drivers privativos de ATI 
> utilizaban algo así; hay un paquete que incluye la utilidad, pero no recuerdo 
> el nombre.
> 
> Ya rizando el rizo, puedes utilizar docker.
> 
> Las últimas 3 soluciones son estáticas; una vez empaquetado el código, es 
> independiente del sistema en el que se ejecuta. No aprovechas posibles 
> soluciones a errores ni actualizaciones del sistema.
> 
> Por último, pasando de todo lo anterior, puedes enlazar tu código con una 
> pequeña parte estática, y comprobar a mano la presencia o ausencia de las 
> librerias que necesites (y sus versiones), y cargarlas a mano con 'dlopen'. 
> Suerte con eso ;-)
> 
> Saludos.
> 

Responder a