Monodevelop – 只使用sudo运行

我在我的Debian amd64 jessie build上安装了Mono和Monodevelop,而且我只能使用提升的权限运行monodevelop。

从UI开始菜单菜单开始monodevelop结果什么都不会发生。 从shell启动monodevelop会导致以下错误:

未处理的exception:System.TypeInitializationException:MonoDevelop.Core.LoggingService的types初始值设定项抛出exception—> System.Configuration.ConfigurationErrorsException:Error初始化configuration系统。 —> System.Configuration.ConfigurationErrorsException:无法识别configuration节(/usr/lib/monodevelop/bin/MonoDevelop.exe.config第3行)System.Configuration.ConfigInfo.ThrowException(System.String text,System.Xml.XmlReader在System.Configuration.SectionGroupInfo中的System.Configuration.SectionGroupInfo.ReadContent(System.Xml.XmlReader reader,System.Configuration.Configuration config,Boolean overrideAllowed,布尔型根)[0x00000] in:0中的[0x00000]在System.Configuration.Configuration.ReadConfigFile(System.Xml.XmlReader reader,System.String fileName)中的[0x00000]:0中读取数据(System.Xml.XmlReader reader,System.Configuration.Configuration config,Boolean overrideAllowed)[0x00000] :0 System.Configuration.Configuration.Load()[0x00000] in:0 System.Configuration.Configuration.Init(IConfigSystem system,System.String configPath,System.Configuration.Configuration parent)[0x00000] in:0 at System .Configuration.Configuration..ctor(系统 在System.Configuration.Configuration.Create(System.Type typeConfigHost,System.Object [] hostInitConfigurationParams)中的[0x00000]:0中的System.Configuration.InternalConfigurationSystem系统,System.String locationSubPath)[0x00000] .OpenExeConfigurationInternal(ConfigurationUserLevel userLevel,System.Reflection.Assembly calling_assembly,System.String exePath)[0x00000] in:0在System.Configuration.ClientConfigurationSystem.get_Configuration()[0x00000] in:0 —内部exception堆栈跟踪结束 – – 在System.Configuration.ClientConfigurationSystem.get_Configuration()[0x00000] in:0在System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(System.String configKey)[0x00000] in:0在System.Configuration .ConfigurationManager.GetSection(System.String sectionName)[0x00000] in:0在System.Configuration.ConfigurationSettings.GetConfig(System.String sectionName)[0x System.Diagnostics.TraceImpl.get_Listeners()[0x00000]中的System.Diagnostics.DiagnosticsConfiguration.get_Settings()[0x00000]中的0:System.Diagnostics.TraceImpl.InitOnce()中的0 [0x00000]在System.Diagnostics.Debug.get_Listeners()[0]中为0;在MonoDevelop.Core.LoggingService.c中为0 [0x00000];在0中:在内部exception堆栈跟踪结束时 – 在MonoDevelop (System.String [] args,MonoDevelop.Ide.Extensions.IdeCustomizer customizer)[0x00000] in:0在MonoDevelop.Startup.MonoDevelopMain.Main(System.String [] args)[0x00000]中: 0 [ERROR] FATAL UNHANDLED EXCEPTION:System.TypeInitializationException:MonoDevelop.Core.LoggingService的types初始值设定项引发exception—> System.Configuration.ConfigurationErrorsException:Error初始化configuration系统。 —> System.Configuration.ConfigurationErrorsException:无法识别configuration节(/usr/lib/monodevelop/bin/MonoDevelop.exe.config第3行)System.Configuration.ConfigInfo.ThrowException(System.String text,System.Xml.XmlReader在System.Configuration.SectionGroupInfo中的System.Configuration.SectionGroupInfo.ReadContent(System.Xml.XmlReader reader,System.Configuration.Configuration config,Boolean overrideAllowed,布尔型根)[0x00000] in:0中的[0x00000]在System.Configuration.Configuration.ReadConfigFile(System.Xml.XmlReader reader,System.String fileName)中的[0x00000]:0中读取数据(System.Xml.XmlReader reader,System.Configuration.Configuration config,Boolean overrideAllowed)[0x00000] :0 System.Configuration.Configuration.Load()[0x00000] in:0 System.Configuration.Configuration.Init(IConfigSystem system,System.String configPath,System.Configuration.Configuration parent)[0x00000] in:0 at System .Configuration.Configuration..ctor(系统 在System.Configuration.Configuration.Create(System.Type typeConfigHost,System.Object [] hostInitConfigurationParams)中的[0x00000]:0中的System.Configuration.InternalConfigurationSystem系统,System.String locationSubPath)[0x00000] .OpenExeConfigurationInternal(ConfigurationUserLevel userLevel,System.Reflection.Assembly calling_assembly,System.String exePath)[0x00000] in:0在System.Configuration.ClientConfigurationSystem.get_Configuration()[0x00000] in:0 —内部exception堆栈跟踪结束 – – 在System.Configuration.ClientConfigurationSystem.get_Configuration()[0x00000] in:0在System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(System.String configKey)[0x00000] in:0在System.Configuration .ConfigurationManager.GetSection(System.String sectionName)[0x00000] in:0在System.Configuration.ConfigurationSettings.GetConfig(System.String sectionName)[0x System.Diagnostics.TraceImpl.get_Listeners()[0x00000]中的System.Diagnostics.DiagnosticsConfiguration.get_Settings()[0x00000]中的0:System.Diagnostics.TraceImpl.InitOnce()中的0 [0x00000]在System.Diagnostics.Debug.get_Listeners()[0]中为0;在MonoDevelop.Core.LoggingService.c中为0 [0x00000];在0中:在内部exception堆栈跟踪结束时 – 在MonoDevelop .Ide.IdeStartup.Main(System.String [] args,MonoDevelop.Ide.Extensions.IdeCustomizer customizer)[0x00000] in:0

使用sudo monodevelop从shell运行monodevelop运行非常好。 我清除了所有的(我的意思是所有)的单声道包,并重新安装,但错误仍然存​​在。 我正在安装的软件包来自mono软件包存储库,如此处所述。

这似乎是一个权限问题,但我不能为我的生活确定什么文件夹或文件可能导致这一点。 我花了两天的时间想弄明白这个,完全没有办法,所以如果有人有什么想法或者之前遇到过这个问题的话,我很乐意听到这个消息。

谢谢,迈克

用strace查找权限错误。 通常当一个程序只能以root身份运行的时候,意味着某些文件是不可访问的,除了root的时候。

strace monodevelop 

我自己也有同样的问题。 我做了

 strace monodevelop > user.txt sudo strace monodevelop > root.txt diff user.txt root.txt > diff.txt 

然后我搜索有问题的文件。

最后这实际上并没有帮助我。 我最终卸载,并重新安装单声道,以及与之相关的一切。 希望这两个解决方案都有帮助。