How-To Geek

Installing MonoDevelop from Source on Ubuntu

After reading a post from my friend Daniel about the new release of MonoDevelop, I decided to try and install it… which is when I realized that the installation from source is so painful I’d better figure it out and share it with everybody else.

The first thing we’ll need to do is install all the prerequisite development library packages so we can link against them when we build. This will take quite a long time, especially the monodoc installation.

You should note that the mono runtime is installed by default in Feisty, which is why it doesn’t appear in this list. If you try this on a different release you’ll want to make sure to install that as well.

sudo apt-get install mono-devel build-essential mono-gmcs libmono-dev libpango1.0-dev libgtk2.0-dev libgtksourceview2.0-cil libgecko2.0-cil monodoc libmono-system-runtime2.0-cil libmono-cairo2.0-cil gettext

Now you’ll want to download, extract and untar the latest source code into a directory of your choice. (You’ll want to make sure 0.16 is still the latest)


bunzip2 monodevelop-0.16.tar.bz2

tar xvf monodevelop-0.16.tar

cd monodevelop-0.16

Now we can start the compilation, and you’ll notice that the ./configure line passes in the prefix option so that it will install in the correct directory.

./configure –prefix=`pkg-config –variable=prefix mono`


sudo make install

At this point MonoDevelop should be installed. You can launch it with Alt+F2 by entering monodevelop into the run box.



MonoDevelop is really coming along since the last time I used it, although there are still a lot of bugs. The most notable missing feature is the lack of integrated debugger…


Tested on a clean Feisty install.

Download MonoDevelop from

Lowell Heddings, better known online as the How-To Geek, spends all his free time bringing you fresh geekery on a daily basis. You can follow him on if you'd like.

  • Published 10/7/07

Comments (21)

  1. bakaohki

    Now that you installed it from source you can make a deb package and upload it to the getdeb site :) I also don’t like “make install” on package managed systems.

  2. Jamie

    I’ve tried this on Ubuntu 7.10 and everything worked! The only issue was with copying the line “./configure –prefix=`pkg-config –variable=prefix mono`” from Firefox to the command line. For some reason the “-” before “prefix” was mapped to a different character on the command line.


  3. Damjan

    Hi I get this error in in a message box, unhandled exception:
    Exception occurred: Exception has been thrown by the target of an invocation.

    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus —> System.DllNotFoundException: gdiplus.dll
    at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
    at System.Drawing.GDIPlus..cctor () [0x00000] — End of inner exception stack trace —

    at System.Drawing.Image.InitFromStream (System.IO.Stream stream) [0x00000]
    at System.Drawing.Bitmap..ctor (System.Type type, System.String resource) [0x00000]
    at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap:.ctor (System.Type,string)
    at System.Windows.Forms.Design.PropertyTab.get_Bitmap () [0x00000]
    at MonoDevelop.DesignerSupport.PropertyGrid.PropertyGrid.AddPropertyTab (System.Windows.Forms.Design.PropertyTab tab) [0x00000]
    at MonoDevelop.DesignerSupport.PropertyGrid.PropertyGrid..ctor (MonoDevelop.DesignerSupport.PropertyGrid.EditorManager editorManager) [0x00000]
    at MonoDevelop.DesignerSupport.PropertyGrid.PropertyGrid..ctor () [0x00000]
    at MonoDevelop.DesignerSupport.PropertyPad..ctor () [0x00000]
    at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[])
    at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] — End of inner exception stack trace —

    at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
    at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
    at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000]
    at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000]
    at Mono.Addins.RuntimeAddin.CreateInstance (System.String typeName, Boolean throwIfNotFound) [0x00000]
    at MonoDevelop.Ide.Codons.PadCodon.CreatePad () [0x00000]
    at MonoDevelop.Ide.Codons.PadCodon.get_PadContent () [0x00000]
    at MonoDevelop.Ide.Gui.SdiWorkbenchLayout.CreatePadContent (Boolean force, MonoDevelop.Ide.Codons.PadCodon padCodon, MonoDevelop.Ide.Gui.PadWindow window, Gdl.DockItem item) [0x00000]
    at MonoDevelop.Ide.Gui.SdiWorkbenchLayout+c__CompilerGenerated76.c__77 (System.Object +41, System.EventArgs +42) [0x00000]
    at GLib.Signal.voidObjectCallback (IntPtr handle, IntPtr gch) [0x00000]
    What can I do to fix it?

    P.S: I like the style of this leave comment form.

  4. jakob

    It is noteworthy that one has to uninstall the monodevelop package that is in Feisty’s universe repository if it has been installed before. I didn’t do so for the first attempt to follow this how-to and monodevelop failed to load its add-ins, suppose because the versions got mixed up. It was not even able to load the source editor add-in. Well, after removing the ‘original’ monodevelop package your installation instructions worked. Thank your very much!

  5. Jens

    Doesn’t it has to be
    ./configure `–prefix=pkg-config –variable=prefix mono`

    instead of

    ./configure –prefix=`pkg-config –variable=prefix mono`

    (look at the >>`

  6. tim

    I think there has to be a step to generate the ./configure file. Mine didn’t come from svn with a ./configure in it.

  7. balint

    Hi, I guess alien-ing the RPM package is much more helpful in some situations:
    I just did the following (me, however had the version up, which came with 7.10):

    alien –scripts monodevelop_0.17-0.novell.noarch.rpm

    when it finished:

    dpkg -i monodevelop_0.17-0-all.deb

  8. brk3

    thanks so much for this, what a pain to compile! the current ubuntu package is way too old too!

  9. eropka

    plz plz anyone make .deb and upload the latest monodevelop (0.18.1) to getdeb :(

  10. Jesica

    in configure rewrite — (2 time -) in prefix and variable otherway if you copy-past it as is originaly written there it would not work cause is like one line just – .

    like this :

    ./configure –prefix=`pkg–config –variable=prefix mono`


    sudo make install

  11. Oerb

    Mono Develop is working to in the same way. (at Day 24.01.2008) you only have to chang 0.16 to 0.17 in above. but 0.18 and 0.18.1 aren’t working on this way.

  12. moy

    successfully installed in Ubuntu Gutsy, but I think the line as indicated at the beginning is wrong:

    ./configure –prefix=`pkg-config –variable=prefix mono`

    But rather should be this way:

    ./configure – prefix=`pkg-config – variable=prefix mono`

    only because I tried it both ways and the second way was the charm. Coincidentally do not know if this is a big deal,
    but upon installation through the terminal, I got this message in the terminal:

    Note that ‘/share’ is not in the search path
    set by the XDG_DATA_HOME and XDG_DATA_DIRS
    environment variables, so applications may not
    be able to find it until you set them. The
    directories currently searched are:

    – /root/.local/share
    – /usr/local/share/
    – /usr/share/
    – /usr/share/gdm/

    Anyways, I tried to see if I could find the latest version as you indicated through Synaptic and realized that the version that was posted in synaptic was older than the one that you indicate on your instruction so I decided to use yours.

    Here is the end result on my end.

  13. Oliver
  14. Mark

    I cant seem to get MonoDevelop 1.0. Can anybody update this?

  15. akadruid

    Easy and safe way to install monodevelop 1.0 on most versions of ubuntu:

    Add the following repository (using System/Administration/Software Sources):

    deb /

    The simply use open synaptic, search for monodevelop, and click apply.

    (More details can be found on the mono site. they tested on gutsy, I tested on feisty, i imagine it works on hardy too and probably even edgy/dapper.)

  16. Ihatebloatware

    I’d got a binary from here,

    on Ubuntu Hardy Heron though, it asks for these two files before it can install or compile any software – mtools and z7

    (I’m not sure if they’re available online to download and place in the required folders manually; my Ubuntu machine isn’t online and automatically tries to get anything it doesn’t have in some automatic update type of way – which is a nightmare btw in trying to install graphics card drivers: why doesn’t it just let you load them manually (on the dekstop menu option) from any chosen media – why only from online?! Seems like a gaping omission when they include so many games and related built-in apps that rely on 3D acceleration to run at more than 2 fps)*

    *the other way to install apps, via the command line, is also a bit wrong in that version of Ubuntu – there is some change to the run level settings, so even if you’re the root user it doesn’t let you install drivers unless you drop down to about level 3 (5 is usually the default)

    Nobody seems to realise some linuxs are going the wrong way! Why have such complex or no access to normal computer things like installing as root, when there’s all kinds of automatic updates built in – it’s not secure anyway when there’s automatic download anything going on! Sure if you’re online and get your connection watched and you’re only a limited user then your installation is safer (as they’d only have access, initially anyway, to the account you are currently using) – but that account is likely to be where all your personal data is…

  17. Joel

    With this:
    #./configure -prefix=`pkg-config -variable=prefix mono`
    I get this:
    -variable=prefix: unknown option

    Help would be cool. :-)

  18. Joel

    sudo apt-get install mono-devel build-essential mono-gmcs libmono-dev libpango1.0-dev libgtk2.0-dev libgtksourceview2.0-cil libgecko2.0-cil monodoc libmono-system-runtime2.0-cil libmono-cairo2.0-cil gettext

    Did not work properly,
    sudo apt-get install mono-devel build-essential mono-gmcs
    did better.

    said it didn’t have any thing to make.

    Any way I like the D (Digital Mars) language.

  19. Sandee Kumar


    installing MonoDevelop in Ubuntu is very easy its available at Application -> Ubuntu Software Center -> Developer Tools -> IDEs -> MonoDevelop.

    i hope it will help.

  20. abhijit

    I get this error “ark@ark-desktop:~$ ./configure `–prefix=pkg-config –variable=prefix mono`
    –prefix=pkg-config: command not found
    bash: ./configure: No such file or directory”

    what should i do

    pls help

  21. areza

    my problem is same as abhijit
    ./configure `–prefix=pkg-config –variable=prefix mono`
    –prefix=pkg-config: command not found
    ./configure: No such file or directory”
    pls help me too 4 this problem

More Articles You Might Like

Enter Your Email Here to Get Access for Free:

Go check your email!