How to force MonoDevelop build to use alternative Mono installation?

≡放荡痞女 提交于 2019-12-11 08:26:15

问题


I am trying to build MonoDevelop 4.0.9 on Ubuntu 12.04, which needs Mono 2.10.9 or later to build. Since Ubuntu only provides Mono 2.10.8, I've built Mono 2.10.9 from sources and installed into /opt/mono-2.11. How do I force ./configure to use Mono 2.10.9 from /opt/mono-2.11/bin instead of /usr/bin?

I've tried updating $PATH, but it didn't help:

/tmp/monodevelop [(monodevelop-4.0.9)]$ PATH=/opt/mono-2.11/bin:$PATH
/tmp/monodevelop [(monodevelop-4.0.9)]$ ./configure

Configuring package: main
-------------------------
Configuration options:
Running aclocal  ...
Running automake --foreign  ...
Running autoconf ...
Running ./configure --enable-maintainer-mode --enable-compile-warnings --prefix=/usr/local ...
configure: WARNING: unrecognized options: --enable-compile-warnings
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for mono... /opt/mono-2.11/bin/mono
checking for gmcs... /opt/mono-2.11/bin/gmcs
checking for pkg-config... /usr/bin/pkg-config
configure: error: You need mono 2.10.9 or newer
/tmp/monodevelop [(monodevelop-4.0.9)]$

UPDATE: I've just tried running an existing MonoDevelop installation using new Mono:

~$ PATH=/opt/mono-2.10.9/bin:$PATH monodevelop

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at MonoDevelop.Startup.MonoDevelopMain.Main (System.String[] args) [0x00000] in /build/buildd/monodevelop-latest-1345013906/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup/MonoDevelopMain.cs:16
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at MonoDevelop.Startup.MonoDevelopMain.Main (System.String[] args) [0x00000] in /build/buildd/monodevelop-latest-1345013906/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup/MonoDevelopMain.cs:16
Missing method get_IsInitialized in assembly /usr/lib/monodevelop/bin/MonoDevelop.Ide.dll, type Mono.Addins.AddinManager

Does this mean that my Mono installation is not complete? Do I need to build these missing assemblies somehow?

UPDATE: I've tried using Parallel Mono Environments and created the ~/mono-dev-env (I didn't change GNOME_PREFIX, because I don't think I have it installed). However I still get an error when running MonoDevelop:

/tmp/mono-2.10.9$ . mono-dev-env
[mono] /tmp/mono-2.10.9 @ mono --version
Mono JIT compiler version 2.10.9 (tarball Wed Jul 17 12:46:30 CEST 2013)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
        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)
[mono] /tmp/mono-2.10.9 @ monodevelop

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at MonoDevelop.Startup.MonoDevelopMain.Main (System.String[] args) [0x00000] in /build/buildd/monodevelop-latest-1345013906/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup/MonoDevelopMain.cs:16
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at MonoDevelop.Startup.MonoDevelopMain.Main (System.String[] args) [0x00000] in /build/buildd/monodevelop-latest-1345013906/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup/MonoDevelopMain.cs:16
Missing method get_IsInitialized in assembly /usr/lib/monodevelop/bin/MonoDevelop.Ide.dll, type Mono.Addins.AddinManager

回答1:


To make sure a Mono app runs within the custom version of Mono that you have built, you should use a parallel mono environment.



来源:https://stackoverflow.com/questions/17682879/how-to-force-monodevelop-build-to-use-alternative-mono-installation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!