GNU/Linux >> Linux Esercitazione >  >> Linux

Perché le applicazioni mono iniziano solo dalla propria directory?

Se voglio eseguire l'applicazione monodevelop , ho bisogno di chdir su /usr/lib/monodevelop/Bin e quindi esegui ./MonoDevelop.exe . Questo è lo stesso per tutte le altre applicazioni Mono come banshee , tomboy , ecc.

Se provo a eseguire le applicazioni Mono da un'altra posizione semplicemente eseguendo monodevelop , o anche dalla loro directory, ottengo TypeInitializationExceptions così:

[email protetta]:/usr/lib/monodevelop/bin$ monodevelop
ERRORE FATAL [2012-05-04 11:24:39Z]:MonoDevelop non è stato avviato. Alcuni
degli assembly necessari per eseguire MonoDevelop (ad esempio gtk-sharp,
gnome-sharp o gtkhtml-sharp) potrebbero non essere installati correttamente nel
GAC. System.TypeInitializationException:è stata generata un'eccezione da
l'inizializzatore del tipo per Gtk.Application —>
System.EntryPointNotFoundException:glibsharp_g_thread_supported at
(wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported
() in GLib.Thread.get_Supported () [0x00000] in :0
in Gtk.Application..cctor () [0x00000] in :0 —
Fine della traccia dello stack di eccezioni interno — at
MonoDevelop.Ide.IdeStartup.Run (MonoDevelop.Ide.MonoDevelopOptions
opzioni) [0x0007e] in
/home/behrooz/Desktop/Monodevelop/monodevelop-2.8.6.5/src/core /MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:95
in 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

Perché?

Ho provato a reinstallare tutti i pacchetti Mono, Wine, GTK, Glib, X, Gnome.

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

Ho anche provato strace su "open" e da solo non ho ottenuto nulla.

Configurazione del sistema:

  • Aggiornamenti Debian 6.0 a 64 bit
  • Kernel 3.2.0-2, 3.2.0-1, 3.1 e 3 EDIT:non è una cosa del kernel
  • Gnome 3.4 EDIT:ma una cosa da gnomo
  • 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)   
    

aggiornamento:con l'aggiornamento al nuovo MonoDevelop 3.0.2 e all'ultimo Mono, posso eseguire MonoDevelop con il comando monodevelop nel terminale, no chdir. ma gnome-shell non può eseguirlo.

Finalmente l'ho trovato:
come root:

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

Risposta accettata:

Sembra che tu abbia creato e installato monodevelop dalla fonte:hai fatto lo stesso per le dipendenze come gtksharp ? Da banshee e tomboy sono rotti, sembra che tu abbia una dipendenza condivisa tra i programmi rotti, e questo è un candidato ovvio. Le app CLI mono funzionano?

Dalla documentazione di build di MonoDevelop:

Ti consigliamo vivamente di installare tutto dai pacchetti, se possibile. In caso contrario, dovresti utilizzare un ambiente mono parallelo. Non installare nulla su /usr o /usr/local a meno che tu non comprenda completamente le implicazioni di fare do.

Se le altre applicazioni mono verranno eseguite solo dal monodevelop installato tree e la reinstallazione dei pacchetti non ha aiutato, potresti avere un pasticcio di cose extra in giro che l'installazione sorgente ha aggiunto che sta interferendo con mono trovare le sue librerie, possibilmente con percorsi hardcoded nel monodevelop installa.

Correlati:Impossibile rinominare i file nella condivisione samba?

La mia Debian-fu non è forte, ma dovrebbe esserci un modo per identificare i file in /usr quel dpkg non lo sa, potrebbe essere un punto di partenza.


Linux
  1. Perché sono passato da Mac a Linux

  2. Filtro Rsync:copiare un solo pattern?

  3. Perché Rm può rimuovere i file di sola lettura?

  4. Come installare R 3.3.1 nella propria directory?

  5. Ricordi le applicazioni al logout da Lxde?

Perché tutti dovrebbero provare a usare Linux

11 motivi per migrare dal desktop di Windows al desktop di Linux

Avvio di diverse applicazioni all'avvio (ognuna nel proprio terminale) + auto-montaggio del disco rigido?

perché sftp rmdir non funziona?

Perché il mio initrd ha solo una directory, vale a dire "kernel"?

Perché non riesco a creare un collegamento reale dal file del dispositivo in una directory diversa da /dev?