La FOCA en Linux [2 de 2]

La FOCA es una aplicación gratuita pero no es de código abierto. Sabemos que está programada en C# y que necesita el framework .NET para funcionar. Sólo con esto, veremos lo sencillo que es hacer que la FOCA muerda el anzuelo para que funcione en Linux…

Lo primero que se me ocurrió fue utilizar Mono (¡esto parece un zoo!), precisamente una implementación del framework .NET de Microsoft, multiplataforma y basado en los estándares ECMA para C# y el CLR (Common Language Runtime). Tras varias pruebas al final desistí y determiné que la FOCA no funcionaba (o no supe hacerla funcionar) con Mono. No obstante sí que aproveché el IDE Monodevelop para depurar el ejecutable de la FOCA en mi Windows 7 y, a través del log de la traza de la aplicación, ver los módulos que carga en tiempo real. El objetivo: copiar las DLLs adicionales que utiliza para llevárnoslas al sistema operativo Linux:

10/06/2009 23:22 10.752 Accessibility.dll
19/04/2010 10:34 17.920 Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll
21/05/2010 00:49 4.550.656 mscorlib.dll
14/07/2009 10:47 307.200 mscorlib.Resources.dll
10/06/2009 23:14 110.592 SMdiagnostics.dll
10/06/2009 23:23 425.984 System.configuration.dll
10/06/2009 23:14 667.648 System.Core.dll
14/07/2009 10:48 61.440 System.Core.Resources.dll
10/06/2009 23:23 3.178.496 System.dll
10/06/2009 23:23 626.688 System.Drawing.dll
14/07/2009 10:47 204.800 system.Resources.dll
10/06/2009 23:13 970.752 System.Runtime.Serialization.dll
14/07/2009 10:48 98.304 System.RunTime.Serialization.Resources.dll
10/06/2009 23:13 5.963.776 System.ServiceModel.dll
10/06/2009 23:14 569.344 System.ServiceModel.Web.dll
10/06/2009 23:23 5.242.880 System.Web.dll
10/06/2009 23:23 5.025.792 System.Windows.Forms.dll
14/07/2009 10:47 425.984 System.Windows.Forms.Resources.dll
10/06/2009 23:23 2.048.000 System.XML.dll
14/07/2009 10:47 163.840 System.xml.Resources.dll
03/03/2010 01:24 1.249.280 WindowsBase.dll

Ahora sólo tenemos que buscar en el sistema las librerías listadas arriba y copiarlas al directorio de instalación de la FOCA. Una vez que tenemos todas las librerías y los ejecutables, los empaquetamos en un zip y pensamos en la otra gran alternativa: Wine, una reimplementación del API de Win16/32 para sistemas operativos basados en Unix.

Nos cambiamos de sistema operativo y empezamos a trabajar en Linux. He probado con las últimas versiones de Debian, Ubuntu y openSuSE. En todas ellas la FOCA funciona pero es en la última en la que todo ha ido más o menos a la primera. Nuestro ejemplo se basa por tanto en openSuSE 11.3 con KDE y utilizar la FOCA es tan sencillo como seguir los siguientes pasos:

- Descomprimir el zip con todos los ejecutables y librerías que utiliza la FOCA
- Instalar wine:
# yast2 --install wine
- Instalar componentes necesarios: Microsoft .NET Framework 2.0, gdiplus y fontfix (mejor con Winetricks)
# winetricks dotnet20 gdiplus fontfix
- Ejecutar la FOCA por medio de Wine
# wine ‘FOCA Free.exe’
- Y , ¡divertirse!








- Parte 1 de 2
- Parte 2 de 2

12 comentarios:

  1. No se porque esta gente no se anima a migrarla, creo que les sería algo fácil tomando en cuenta que si las condiciones son tales... Por mi parte, la mayoría de las aplicaciones que hago en la U solo necesitan de abrirse y Voila!... Por otra parte, sería una muestra más de las cualidades del proyecto mono, que tanto descrédito ha tenido en otros blogs.

    ResponderEliminar
  2. Hablando de Mono, supongo que la FOCA podría llegar a funcionar completamente si se analizara el proyecto de Visual Studio con MoMA (http://mono-tools.com/Moma.aspx) y se hicieran algunas modificaciones. Además mejoraría su portabilidad porque muchas distribuciones de Linux vienen ya con Mono instalado por defecto y no sería necesario lanzarla con Wine o reescribirla en Perl como decía Chema en su blog...;-)

    ResponderEliminar
  3. Molaría, para los que no usamos windows, un .rar con las dll's, que supongo que tendrás recopiladas, ¿no?

    ResponderEliminar
  4. Bueno.. si mola entonces puedes descargarlas en https://sites.google.com/site/h4ckpl4y3s/DllsFOCA.rar

    Saludos!

    ResponderEliminar
  5. Hola.. La instalada de foca me fue sensacional pero el problema que tengo es de como poder analizar un archivo que tengo en mi pc.. la opcion de arrastrar el archivo no va.. "No se puede arrastras" quiero sabe si ustedes han podido hacerlo y como la hace.

    Exitos y larga vida.

    ResponderEliminar
  6. Hola Javier. Efectivamente he comprobado que no se puede arrastrar ningún elemento o añadir con el botón derecho porque el menú contextual no aparece. Yo primero probé en Ubuntu y todo funcionaba correctamente, sin embargo la instalación era un quebradero de cabeza y por eso opté por OpenSuSE. Quizás falta instalar algún otro componente (winetricks) o es un tema de ruta o permisos. Tengo que hacer más pruebas...¿Alguien que le funcione bien en esta distribución o en otras?

    ResponderEliminar
  7. Hola vmotos ya tengo la solución.. Dado el caso que no se puede arrastrar los archivos a foca y el click derecho no funciona. La única forma de hacerlo es con la tecla que hace la función del click derecho.. (La tecla se encuentra al lado de Ctrl mano derecha).Éxitos..

    ResponderEliminar
  8. ¡Qué curioso! Muchas gracias Javier!

    ResponderEliminar
  9. Hola!! Gracias por el aporte, pero tengo un problema con la instalación...

    wine: cannot find L"C:\\windows\\system32\\\2018FOCA.exe"

    Y gúguel no sabe nada... este archivo existe?? tal vez por usar la última versión??
    Gracias de todos modos!!

    ResponderEliminar
  10. Arreglado... que soy un cazurro y no había descargado el .NET Framework...
    Gracias!!

    ResponderEliminar
  11. La foca no se migra a linux porque ya existen herramientas para todo eso lo que claro, jajaja, ponte a usarlas una por una y en tu terminal ahi, vamos, que no es tarea facil, pero haberlas ahilas y guenas mu guenas. aparte si se tiene que usar windows pues se usa windows. la etica real es usar todo lo disponible y no ser un pardillo encerrado en los comandos. si esta pa windows pues se corre en windows, pasando de perder el tiempo no? si te apetece no me meto claro. un besitooo!! jajaja

    ResponderEliminar
  12. Emm no se si es que estoy haciendo algo horriblemente mal, jeje pero no puedo >_< jaja

    ResponderEliminar