Por que os aplicativos Mono só iniciam a partir de seu próprio diretório?

4

Se eu quiser executar o aplicativo monodevelop , preciso chdir para /usr/lib/monodevelop/Bin e, em seguida, executar ./MonoDevelop.exe . Isso é o mesmo para todos os outros aplicativos Mono, como banshee , tomboy , etc.

Se eu tentar executar os aplicativos Mono a partir de outro local simplesmente executando monodevelop , ou mesmo de seu próprio diretório, obtenho TypeInitializationExceptions da seguinte forma:

behrooz@behrooz:/usr/lib/monodevelop/bin$ monodevelop
FATAL ERROR [2012-05-04 11:24:39Z]: MonoDevelop failed to start. Some
of the assemblies required to run MonoDevelop (for example gtk-sharp,
gnome-sharp or gtkhtml-sharp) may not be properly installed in the
GAC. System.TypeInitializationException: An exception was thrown by
the type initializer for Gtk.Application --->
System.EntryPointNotFoundException: glibsharp_g_thread_supported at
(wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported
() at GLib.Thread.get_Supported () [0x00000] in :0
at Gtk.Application..cctor () [0x00000] in :0 ---
End of inner exception stack trace --- at
MonoDevelop.Ide.IdeStartup.Run (MonoDevelop.Ide.MonoDevelopOptions
options) [0x0007e] in
/home/behrooz/Desktop/Monodevelop/monodevelop-2.8.6.5/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:95
at MonoDevelop.Ide.IdeStartup.Main (System.String[] args) [0x0004f] in
/home/behrooz/Desktop/Monodevelop/monodevelop-2.8.6.5/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:503

Por que isso acontece?

Eu tentei reinstalar todos os pacotes Mono, Wine, GTK, Glib, X e Gnome.

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

Eu também tentei "abrir" e não consegui nada sozinho

Configuração do sistema:
 - Debian 6.0-updates 64 bit
 - Kernel 3.2.0-2, 3.2.0-1, 3.1 e 3 EDIT: não é uma coisa do kernel  - Gnome 3.4 EDIT: mas uma coisa do gnome  - Mono 2.10.5
    TLS: __thread
    SIGSEGV: altstack
    Notificações: epoll
    Arquitetura: amd64
        Desativado: nenhum (a)         Misc: softdebug
        LLVM: suportado, não ativado.
        GC: Boehm incluído (com GC digitado e marca paralela)

update: com a atualização para o novo monodevelop 3.0.2 e o mais recente mono, posso executar o monodevelop com o comando "monodevelop" no terminal, sem chdir.but, o gnome-shell não pode executá-lo.

Finalmente encontrei:
como root:

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

1 resposta

1

Parece que você criou e instalou monodevelop da fonte - fez o mesmo para as dependências como gtksharp ? Como banshee e tomboy estão quebrados, parece que você tem uma dependência compartilhada entre os programas quebrados, e esse é um candidato óbvio. Os aplicativos mono da CLI funcionam?

A partir da documentação de criação do MonoDevelop :

We strongly recommend you install everything from packages if possible. If not you, you should use a Parallel Mono Environment. Do not install anything to /usr or /usr/local unless you completely understand the implications of doing do.

Se os outros aplicativos mono só forem executados a partir da árvore monodevelop instalada, e a reinstalação dos pacotes não tiver ajudado, você poderá ter uma confusão de coisas extras flutuando que a instalação de origem adicionou, o que está interferindo em mono encontrando suas bibliotecas, possivelmente com caminhos codificados no monodevelop install.

Meu Debian-fu não é strong, mas deve haver uma maneira de identificar arquivos em /usr que dpkg não conhece, que pode ser um lugar para começar.

    
por 05.05.2012 / 00:27