GNU/Linux >> Znalost Linux >  >> Linux

Proč Mono aplikace začínají pouze z jejich vlastního adresáře?

Pokud chci spustit aplikaci monodevelop , potřebuji chdir do /usr/lib/monodevelop/Bin a poté spusťte ./MonoDevelop.exe . To je stejné pro všechny ostatní Mono aplikace, jako je banshee , tomboy , atd.

Pokud se pokusím spustit aplikace Mono z jiného umístění, jednoduše spustím monodevelop , nebo dokonce z jejich vlastního adresáře, dostávám TypeInitializationExceptions takhle:

[email protected]:/usr/lib/monodevelop/bin$ monodevelop
ZÁVAŽNÁ CHYBA [2012-05-04 11:24:39Z]:MonoDevelop se nepodařilo spustit. Některá
sestavení potřebná ke spuštění MonoDevelop (například gtk-sharp,
gnome-sharp nebo gtkhtml-sharp) nemusí být správně nainstalována v
GAC. System.TypeInitializationException:Výjimka byla vyvolána
inicializátorem typu pro Gtk.Application —>
System.EntryPointNotFoundException:glibsharp_g_thread_supported at
(wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported br /> () na GLib.Thread.get_Supported () [0x00000] v :0
v Gtk.Application..cctor () [0x00000] v :0 —
Konec trasování vnitřního zásobníku výjimek — na
MonoDevelop.Ide.IdeStartup.Run (možnosti MonoDevelop.Ide.MonoDevelopOptions
) [0x0007e] v
/home/behrooz/Desktop/Monodevelop/monodevelop-2.8.6.5/src/core /MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:95
na MonoDevelop.Ide.IdeStartup.Main (System.String[] args) [0x0004f] v
/home/behrooz/Desktop/Monodevelop /monodevelop-2.8.6.5/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:503

Proč?

Zkusil jsem přeinstalovat všechny balíčky Mono, Wine, GTK, Glib, X, Gnome.

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

Zkoušel jsem také strace na „open“ a sám jsem nic nedostal.

Konfigurace systému:

  • Debian 6.0-aktualizace 64bitové
  • UPRAVIT jádro 3.2.0-2, 3.2.0-1, 3.1 a 3:nejde o jádro
  • ÚPRAVA Gnome 3.4:ale věc trpaslíků
  • 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)   
    

aktualizace:po aktualizaci na nový MonoDevelop 3.0.2 a nejnovější Mono mohu spustit MonoDevelop pomocí příkazu monodevelop v terminálu, žádný chdir. ale gnome-shell to nemůže spustit.

Nakonec to našel:
jako root:

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

Přijatá odpověď:

Zdá se, že jste vytvořili a nainstalovali monodevelop ze zdroje – udělali jste totéž pro závislosti jako gtksharp ? Od banshee a tomboy jsou rozbité, zní to, jako byste měli závislost sdílenou mezi rozbitými programy, a to je zřejmý kandidát. Fungují aplikace CLI mono?

Z dokumentace sestavení MonoDevelop:

Pokud je to možné, důrazně doporučujeme nainstalovat vše z balíčků. Pokud ne vy, měli byste použít Parallel Mono Environment. Neinstalujte nic do /usr nebo /usr/local, pokud zcela nerozumíte důsledkům toho, co to uděláte.

Pokud ostatní mono aplikace poběží pouze z nainstalovaného monodevelop stromu a přeinstalování balíčků nepomohlo, možná se kolem vás vznáší změť dalších věcí, které přidala instalace zdroje, což narušuje mono nalezení jeho knihoven, případně s pevně zakódovanými cestami do monodevelop nainstalovat.

Související:Nelze přejmenovat soubory ve sdílené složce samba?

Můj Debian-fu není silný, ale měl by existovat způsob identifikace souborů v /usr že dpkg neví o, to by mohlo být místo, kde začít.


Linux
  1. Proč nemohu použít CD ve skriptu Bash?

  2. Pamatujete si aplikace při odhlášení z Lxde?

  3. Proč Unixový čas začíná na 1970-01-01?

  1. Odkud se spouští skript Shell?

  2. Spuštění několika aplikací při spouštění (každá ve svém vlastním terminálu) + Automaticky připojit pevný disk?

  3. Jak spustit proces ve vlastní skupině procesů?

  1. Jak mohu vyloučit adresář z příkazu ls

  2. Spouštění skriptů z jiného adresáře

  3. proč nefunguje sftp rmdir?