GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi les applications Mono ne démarrent-elles qu'à partir de leur propre répertoire ?

Si je veux lancer l'application monodevelop , j'ai besoin de chdir vers /usr/lib/monodevelop/Bin puis exécutez ./MonoDevelop.exe . C'est la même chose pour toutes les autres applications Mono telles que banshee , tomboy , etc.

Si j'essaie d'exécuter les applications Mono à partir d'un autre emplacement en exécutant simplement monodevelop , ou même à partir de leur propre répertoire, j'obtiens TypeInitializationExceptions comme ceci :

[email protected] :/usr/lib/monodevelop/bin$ monodevelop
ERREUR FATALE [2012-05-04 11:24:39Z] :MonoDevelop n'a pas pu démarrer. Certains
des assemblages requis pour exécuter MonoDevelop (par exemple gtk-sharp,
gnome-sharp ou gtkhtml-sharp) peuvent ne pas être correctement installés dans le
GAC. System.TypeInitializationException :une exception a été générée par
l'initialiseur de type pour Gtk.Application —>
System.EntryPointNotFoundException :glibsharp_g_thread_supported at
(wrapper managé vers natif) GLib.Thread :glibsharp_g_thread_supported
() sur GLib.Thread.get_Supported () [0x00000] dans :0
dans Gtk.Application..cctor () [0x00000] dans :0 —
Fin de la trace de la pile d'exceptions internes — à
MonoDevelop.Ide.IdeStartup.Run (options MonoDevelop.Ide.MonoDevelopOptions
) [0x0007e] dans
/home/behrooz/Desktop/Monodevelop/monodevelop-2.8.6.5/src/core /MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:95
sur MonoDevelop.Ide.IdeStartup.Main (System.String[] args) [0x0004f] dans
/home/behrooz/Desktop/Monodevelop /monodevelop-2.8.6.5/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:503

Pourquoi est-ce ?

J'ai essayé de réinstaller tous les packages Mono, Wine, GTK, Glib, X, Gnome.

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

J'ai aussi essayé strace sur "open" et je n'ai rien obtenu par moi-même.

Configuration du système :

  • Debian 6.0-mises à jour 64 bits
  • Kernel 3.2.0-2, 3.2.0-1, 3.1 et 3 EDIT :pas une chose de noyau
  • Gnome 3.4 EDIT :mais un truc de gnome
  • 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)   
    

mise à jour :avec la mise à niveau vers le nouveau MonoDevelop 3.0.2 et le dernier Mono, je peux exécuter MonoDevelop avec la commande monodevelop dans le terminal, pas de chdir. mais gnome-shell ne peut pas l'exécuter.

Enfin trouvé :
en tant que root :

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

Réponse acceptée :

Il semble que vous ayez compilé et installé monodevelop à partir de la source - avez-vous fait de même pour les dépendances telles que gtksharp ? Depuis banshee et tomboy sont cassés, il semble que vous ayez une dépendance partagée entre les programmes cassés, et c'est un candidat évident. Les applications mono CLI fonctionnent-elles ?

À partir de la documentation de construction de MonoDevelop :

Nous vous recommandons fortement de tout installer à partir des packages si possible. Si ce n'est pas vous, vous devez utiliser un environnement mono parallèle. N'installez rien sur /usr ou /usr/local à moins que vous ne compreniez parfaitement les implications de le faire.

Si les autres applications mono ne s'exécuteront qu'à partir du monodevelop installé tree, et la réinstallation des packages n'a pas aidé, vous pourriez avoir un fouillis de choses supplémentaires flottantes que l'installation source a ajoutées et qui interfèrent avec mono trouver ses bibliothèques, éventuellement avec des chemins codés en dur dans le monodevelop installer.

En relation :Impossible de renommer les fichiers dans le partage Samba ?

Ma Debian-fu n'est pas forte, mais il devrait y avoir un moyen d'identifier les fichiers dans /usr que dpkg ne sait pas, cela pourrait être un point de départ.


Linux
  1. Filtre Rsync :copie d'un seul motif ?

  2. Pourquoi Rm peut-il supprimer les fichiers en lecture seule ?

  3. Comment installer R 3.3.1 dans le propre répertoire ?

  4. Pourquoi ne puis-je pas utiliser Cd dans un script Bash ? ?

  5. Rappelez-vous les applications lors de la déconnexion de Lxde ?

Pourquoi tout le monde devrait essayer d'utiliser Linux

11 raisons de migrer du bureau Windows vers le bureau Linux

Comment démarrer un processus dans son propre groupe de processus ?

Pourquoi un dossier doit-il être exécutable ?

pourquoi sftp rmdir ne fonctionne-t-il pas?

Pourquoi mon initrd n'a-t-il qu'un seul répertoire, à savoir "kernel" ?