English  -  Español

Foro


Se han cerrado los foros.
No se borran los comentarios antiguos por motivos históricos.

Se pueden escribir nuevos comentarios en páginas concretas del sitio web de Chronojump.




 
Calificación:
  • 0 Votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Evitar la instalción de Mono en Windows

20-06-2009, 01:53 AM
Mensaje: #1
Evitar la instalción de Mono en Windows
Hola a todos.
Conocí chronojump a través un amigo en el concurso universitario de software libre en el que participé con LongoMatch[1], un programa para vídeo análisis deportivo. Me recomendó ponerme en contacto con Xavi porque ambos manteníamos un proyecto de Software Libre relacionado con el deporte y además porque ambos proyectos usan Mono.
Después de hablar con él me he pasado por aquí para ver cómo funcionaba el proyecto y tenía una pequña sugerencia para evitar la instalación de Mono, haciendo así la instalación más fácil y rápida y generando un instaldor de mucho menor tamaño.

Lo que hago en LongoMatch es usar la aplicación 'mkbundle2', que viene con el instalador de Mono. Esta aplicación genera a partir del ejecutable que se obtiene con el compilador de mono otro ejecutable con todas las dependencias de Mono 'empotradas', pudiendo ejecutar el programa sin instalar Mono. Con ese ejecutable y las librerías mono.dll y MonoPosixHelper.dll puedes lanzar el programa sin necesidad de nada más (en cuanto a las dependencias con Mono se refiere). Os vendría muy bien ya que de esta forma reducirías enormemente el tamaño del instalador.
Este el pequeño script que uso desde mingw/msys:
Código:
# Añadimos al GAC los ensamblados externos
/e/mono/bin/gacutil -i /path/CesarPlayer.dll
/e/mono/bin/gacutil -i /path/Db4objects.Db4o.dll
# Libtool debe encontrar el paquete mono
export PKG_CONFIG_PATH=/e/mono/lib/pkgconfig/
#Generamos el ejecutable
/e/mono/bin/mkbundle2 ./LongoMatch.exe --deps -o win32/bin/LongoMatch.exe

Este ejecutable se puede lanzar con un doble click sin necesidad de usar ningún script para lanzarlo.

Un saludo


[1]http://www.ylatuya.es
Encuentra todos los mensajes de este usuario
21-06-2009, 09:49 PM
Mensaje: #2
RE: Evitar la instalción de Mono en Windows
Hola Andoni "longomatch"

Gracias por la ayuda!, qué sorpresa! hace mucho que había leído sobre mkbundle pero al no saber cómo usarlo lo dejé para más adelante.

¿Y para Linux lo usas igual? ¿entonces coge las libs de mono para las que se ha compilado o coge las del sistema?

Siempre he sido muy negado con todo el linkado

Gracias
Encuentra todos los mensajes de este usuario
23-06-2009, 02:18 PM
Mensaje: #3
RE: Evitar la instalción de Mono en Windows
En Linux mkbundle no es una opción realmente interesante porque tienes un gestor de paquetes que gestiona las dependencias.

La idea de usar mkbundle en Windows es para crear un enjaulado en torno al directorio de ejecución de tu programa y de esta forma poder empaquetarlo todo junto sin necesidad de instalar dependencias externas (Gtk, Cairo, Glib, Mono). Esta opción es muy buena en Windows porque permite tener todo en un mismo instalador, reduciendo su tamaño y a la vez tener todas las dependencias en un mismo directorio.
¿Qué pasaría si después de instalar chronojump un usuario borra Mono por despiste?
¿Porqué debería seguir instalado Mono después de desinstalar chronojump? ¿Qué pasaría si el usuario instala, a parte de Mono, una versión de GTK antigua (o incompatible), y se usase esa, en vez de la que proporciona Mono, por estar su directorio 'bin' antes en la variable PATH?
Windows plantea un serie de problemas en cuanto a dependencias que es mejor evitar con un enjaulado.
Lo que hace mkbundle es juntar en el ejecutable todos lo ensamblados C# que se usan (System, Mono.Unix, Gtk, Glib, etc...), luego habría que copiar manualmente todas las dependencias, como son las dll's especificas de Glib y Gtk y Mono.
Como voy a hacer las pruebas de la nueva versión, pruebo también a hacer este tipo de empaquetado y te lo mando para lo pruebes y opines qué te parece.
Encuentra todos los mensajes de este usuario
23-06-2009, 05:41 PM
Mensaje: #4
RE: Evitar la instalción de Mono en Windows
Hola sí, estoy de acuerdo, lo decía porque tanto en Debian como en Ubuntu he tenido problemas con las versiones de Mono. Debido a que aún no tengo paquetes de Chronojump, el instalador de Linux lo tengo sin Mono y sin detección del mismo, dejando que el usuario lo haga por su cuenta. Ahora un amigo está trabajando en la versión de Fedora y luego lo pasaremos a otras distros.

Gracias.
Encuentra todos los mensajes de este usuario
07-09-2009, 12:24 PM
Mensaje: #5
RE: Evitar la instalción de Mono en Windows
Bueno, gracias a Andoni ya tenemos la versión 0.8.9.7 que evita la instalación de Mono. Ahora el archivo para windows ha pasado de unos 80MB a 25!!
Encuentra todos los mensajes de este usuario


Salto de Foro:




CHRONOJUMP-BOSCOSYSTEM - software libre - hardware abierto - fiable - asequible
^ Subir a inicio de página