GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué las aplicaciones Mono solo comienzan desde su propio directorio?

Si quiero ejecutar la aplicación monodevelop , necesito chdir a /usr/lib/monodevelop/Bin y luego ejecute ./MonoDevelop.exe . Esto es lo mismo para todas las demás aplicaciones Mono como banshee , tomboy , etc.

Si intento ejecutar las aplicaciones Mono desde otra ubicación simplemente ejecutando monodevelop , o incluso desde su propio directorio, obtengo TypeInitializationExceptions así:

[email protected]:/usr/lib/monodevelop/bin$ monodevelop
ERROR FATAL [2012-05-04 11:24:39Z]:MonoDevelop no pudo iniciarse. Es posible que algunos
de los ensamblados necesarios para ejecutar MonoDevelop (por ejemplo, gtk-sharp,
gnome-sharp o gtkhtml-sharp) no estén instalados correctamente en el
GAC. System.TypeInitializationException:
el inicializador de tipo para Gtk.Application lanzó una excepción —>
System.EntryPointNotFoundException:glibsharp_g_thread_supported at
(envoltorio administrado a nativo) GLib.Thread:glibsharp_g_thread_supported
() en GLib.Thread.get_Supported () [0x00000] en :0
en Gtk.Application..cctor () [0x00000] en :0 —
Fin del seguimiento de la pila de excepción interna — en
MonoDevelop.Ide.IdeStartup.Run (MonoDevelop.Ide.MonoDevelopOptions
opciones) [0x0007e] en
/home/behrooz/Desktop/Monodevelop/monodevelop-2.8.6.5/src/core /MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:95
en MonoDevelop.Ide.IdeStartup.Main (System.String[] args) [0x0004f] en
/home/behrooz/Desktop/Monodevelop /monodevelop-2.8.6.5/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:503

¿Por qué es eso?

He intentado reinstalar todos los paquetes de Mono, Wine, GTK, Glib, X, Gnome.

apt-get --purge --reinstall install $(dpkg --get-selections | grep mono | grep install | grep  -v deinstall | awk'{print $1}')  

También probé strace en "abierto" y no obtuve nada.

Configuración del sistema:

  • Debian 6.0-actualizaciones de 64 bits
  • Kernel 3.2.0-2, 3.2.0-1, 3.1 y 3 EDITAR:no es algo del kernel
  • Gnome 3.4 EDITAR:pero una cosa de gnomos
  • Mono 2.10.5
    TLS:           __thread  
    SIGSEGV:       altstack  
    Notifications: epoll  
    Architecture:  amd64  
        Disabled:      none  
        Misc:          softdebug   
        LLVM:          supported, not enabled.  
        GC:            Included Boehm (with typed GC and Parallel Mark)   
    

actualización:con la actualización al nuevo MonoDevelop 3.0.2 y al último Mono, puedo ejecutar MonoDevelop con el comando monodevelop en la terminal, sin chdir. pero gnome-shell no puede ejecutarlo.

Finalmente lo encontré:
como root:

 cd /usr/local/
 find | grep mono|xargs rm -rf
 # Use with caution/some applications may get messed up (stellarium has MONOchrome images...)

Respuesta aceptada:

Parece que ha compilado e instalado monodevelop desde la fuente:¿hiciste lo mismo para las dependencias como gtksharp? ? Desde banshee y tomboy están rotos, parece que tiene una dependencia compartida entre los programas rotos, y ese es un candidato obvio. ¿Funcionan las aplicaciones CLI mono?

De la documentación de compilación de MonoDevelop:

Le recomendamos encarecidamente que instale todo, desde paquetes, si es posible. Si no eres tú, deberías usar un Entorno Mono Paralelo. No instale nada en /usr o /usr/local a menos que comprenda completamente las implicaciones de hacerlo.

Si las otras aplicaciones mono solo se ejecutarán desde el monodevelop instalado tree, y la reinstalación de paquetes no ha ayudado, es posible que tenga un lío de cosas adicionales flotando que la instalación de origen ha agregado que interfiere con mono encontrar sus bibliotecas, posiblemente con rutas codificadas en monodevelop instalar.

Relacionado:¿No puede cambiar el nombre de los archivos en el recurso compartido de samba?

Mi Debian-fu no es fuerte, pero debería haber una forma de identificar archivos en /usr que dpkg no sabe, ese podría ser un lugar para comenzar.


Linux
  1. Filtro Rsync:¿Copiar un solo patrón?

  2. ¿Por qué Rm puede eliminar archivos de solo lectura?

  3. ¿Cómo Instalar R 3.3.1 En El Directorio Propio?

  4. ¿Por qué el tiempo de Unix comienza en 1970-01-01?

  5. ¿Por qué es Rm -rf y no Rmdir -rf?

Por qué todos deberían intentar usar Linux

Por qué cambié de Mac a Linux

11 razones por las que migrar del escritorio de Windows al escritorio de Linux

¿Cómo puedo excluir un directorio del comando ls?

Ejecutar scripts desde otro directorio

¿Por qué no puedo crear un vínculo físico desde un archivo de dispositivo que no sea el directorio /dev?