Mono .deb in Ubuntu. Keep it up (to Date)!
Posted November 6th, 2007 by Jon DickCategories: General Life
So, Ubuntu has this problem of maintaining outdated releases of Mono/MonoDevelop. This sucks, but I really don’t want to switch to OpenSUSE or Fedora. I had thought about using the universal installer, but I really wanted to keep things going through apt, especially since there already is a mono version installed with Gutsy Gibbon by default, so having two side by side installs of Mono seemed less than ideal.
I had also considered compiling from source and trying out checkinstall, or even learning dh_make. This I might be interested in the future, but I’m no pro at linux by any means, and this task was a bit daunting to me (I don’t know enough about either method to feel comfortable packaging such a large project).
As I was near giving up, I stumbled across a post in Ubuntu Forums with a couple of bash scripts to automatically go out, install the proper build dependencies, and then get the latest mono stable source, compile it, and install it as a package. This was EXACTLY what I needed.
Here it is for future reference for myself, and anyone else who might stumble across this page and find it useful:
First, getting all the necessary libraries:
#!/bin/bash
sudo apt-get update
sudo apt-get upgradesudo apt-get build-dep mono –assume-yes
sudo apt-get build-dep gnome-devel –assume-yes
sudo apt-get build-dep build-essential –assume-yes
sudo apt-get build-dep devscripts –assume-yes
sudo apt-get build-dep dh-buildinfo –assume-yes
sudo apt-get build-dep sbuild –assume-yes
sudo apt-get build-dep pkg-config –assume-yes
sudo apt-get build-dep libextutils-pkgconfig-perl –assume-yes
sudo apt-get build-dep libgift-dev –assume-yes
sudo apt-get build-dep libpthread-stubs0-dev –assume-yes
sudo apt-get build-dep xserver-xorg-dev –assume-yes
sudo apt-get build-dep bison –assume-yes
sudo apt-get build-dep libcairo2-dev –assume-yes
sudo apt-get build-dep libcairo-directfb2 –assume-yes
sudo apt-get build-dep libcairo-directfb2-dev –assume-yes
sudo apt-get build-dep libglib1.2 –assume-yes
sudo apt-get build-dep libglib1.2-dev –assume-yes
sudo apt-get build-dep libglib2.0-0 –assume-yes
sudo apt-get build-dep libglib2.0-cil –assume-yes
sudo apt-get build-dep libglib2.0-data –assume-yes
sudo apt-get build-dep libglib2.0-dev –assume-yes
sudo apt-get build-dep libungif4-dev –assume-yes
sudo apt-get build-dep libungif-bin –assume-yes
sudo apt-get build-dep libjpeg-progs –assume-yes
sudo apt-get build-dep libtiff4-dev –assume-yes
sudo apt-get build-dep libtiff-opengl –assume-yes
sudo apt-get build-dep libtiff-tools –assume-yes
sudo apt-get build-dep libtiffxx0c2 –assume-yes
sudo apt-get build-dep libgnome-desktop-dev –assume-yes
sudo apt-get build-dep libgtkhtml2-0 –assume-yes
sudo apt-get build-dep libgtkhtml2-dev –assume-yes
sudo apt-get build-dep libgtkhtml3.14-dev –assume-yes
sudo apt-get build-dep libgtkhtml3.8-dev –assume-yes
sudo apt-get build-dep libgtkhtml3.8-15 –assume-yes
sudo apt-get build-dep libgtkhtml3.8-dev –assume-yes
sudo apt-get build-dep libvte2.0-cil –assume-yes
sudo apt-get build-dep libvte-cil –assume-yes
sudo apt-get build-dep libvte-dev –assume-yes
sudo apt-get build-dep librsvg2-bin –assume-yes
sudo apt-get build-dep librsvg2-dev –assume-yes
sudo apt-get build-dep libgail-gnome-dev –assume-yes
sudo apt-get build-dep libgnome-cil –assume-yes
sudo apt-get build-dep libgnomedb2-4 –assume-yes
sudo apt-get build-dep libgnomedb2-bin –assume-yes
sudo apt-get build-dep libgnomedb2-dev –assume-yes
sudo apt-get build-dep libgnome-dev –assume-yes
sudo apt-get build-dep libpanel-applet2-dev –assume-yes
sudo apt-get build-dep gawk –assume-yes
sudo apt-get build-dep exif –assume-yes
sudo apt-get build-dep exiftags –assume-yes
sudo apt-get build-dep exiftran –assume-yes
sudo apt-get build-dep exifprobe –assume-yes
sudo apt-get build-dep libexif-gtk-dev –assume-yes
sudo apt-get build-dep libexif-gtk5 –assume-yes
sudo apt-get build-dep libsdl-pango1 –assume-yes
sudo apt-get build-dep libsdl-pango-dev –assume-yes
sudo apt-get build-dep monodevelop –assume-yessudo aptitude install gnome-devel –with-recommends –assume-yes
sudo aptitude install build-essential –with-recommends –assume-yes
sudo aptitude install devscripts –with-recommends –assume-yes
sudo aptitude install dh-buildinfo –with-recommends –assume-yes
sudo aptitude install sbuild –with-recommends –assume-yes
sudo aptitude install pkg-config –with-recommends –assume-yes
sudo aptitude install libextutils-pkgconfig-perl –with-recommends –assume-yes
sudo aptitude install libgift-dev –with-recommends –assume-yes
sudo aptitude install libpthread-stubs0-dev –with-recommends –assume-yes
sudo aptitude install xserver-xorg-dev bison –with-recommends –assume-yes
sudo aptitude install libcairo2-dev –with-recommends –assume-yes
sudo aptitude install libcairo-directfb2 –with-recommends –assume-yes
sudo aptitude install libcairo-directfb2-dev –with-recommends –assume-yes
sudo aptitude install libglib1.2 –with-recommends –assume-yes
sudo aptitude install libglib1.2-dev –with-recommends –assume-yes
sudo aptitude install libglib2.0-0 –with-recommends –assume-yes
sudo aptitude install libglib2.0-cil –with-recommends –assume-yes
sudo aptitude install libglib2.0-data –with-recommends –assume-yes
sudo aptitude install libglib2.0-dev –with-recommends –assume-yes
sudo aptitude install libungif4-dev –with-recommends –assume-yes
sudo aptitude install libungif-bin –with-recommends –assume-yes
sudo aptitude install libjpeg-progs –with-recommends –assume-yes
sudo aptitude install libtiff4-dev –with-recommends –assume-yes
sudo aptitude install libtiff-opengl –with-recommends –assume-yes
sudo aptitude install libtiff-tools –with-recommends –assume-yes
sudo aptitude install libtiffxx0c2 –with-recommends –assume-yes
sudo aptitude install libgnome-desktop-dev –with-recommends –assume-yes
sudo aptitude install libgtkhtml2-0 –with-recommends –assume-yes
sudo aptitude install libgtkhtml2-dev –with-recommends –assume-yes
sudo aptitude install libgtkhtml3.14-dev –with-recommends –assume-yes
sudo aptitude install libgtkhtml3.8-dev –with-recommends –assume-yes
sudo aptitude install libgtkhtml3.8-15 –with-recommends –assume-yes
sudo aptitude install libgtkhtml3.8-dev –with-recommends –assume-yes
sudo aptitude install libvte2.0-cil –with-recommends –assume-yes
sudo aptitude install libvte-cil –with-recommends –assume-yes
sudo aptitude install libvte-dev –with-recommends –assume-yes
sudo aptitude install librsvg2-bin –with-recommends –assume-yes
sudo aptitude install librsvg2-dev –with-recommends –assume-yes
sudo aptitude install libgail-gnome-dev –with-recommends –assume-yes
sudo aptitude install libgnome-cil –with-recommends –assume-yes
sudo aptitude install libgnomedb2-4 –with-recommends –assume-yes
sudo aptitude install libgnomedb2-bin –with-recommends –assume-yes
sudo aptitude install libgnomedb2-dev –with-recommends –assume-yes
sudo aptitude install libgnome-dev –with-recommends –assume-yes
sudo aptitude install libpanel-applet2-dev –with-recommends –assume-yes
sudo aptitude install gawk –with-recommends –assume-yes
sudo aptitude install exif –with-recommends –assume-yes
sudo aptitude install exiftags –with-recommends –assume-yes
sudo aptitude install exiftran –with-recommends –assume-yes
sudo aptitude install exifprobe –with-recommends –assume-yes
sudo aptitude install libexif-gtk-dev –with-recommends –assume-yes
sudo aptitude install libexif-gtk5 –with-recommends –assume-yes
sudo aptitude install libsdl-pango1 –with-recommends –assume-yes
sudo aptitude install libsdl-pango-dev –with-recommends –assume-yessudo apt-get autoremove –assume-yes
Next, installing mono:
#!/bin/bash
mkdir ~/Desktop/src
cd ~/Desktop/src
clearwget http://go-mono.com/sources/libgdiplus/libgdiplus-1.2.5.tar.bz2
tar xvf libgdiplus-1.2.5.tar.bz2
rm libgdiplus-1.2.5.tar.bz2
cd ~/Desktop/src/libgdiplus-1.2.5
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearsudo sh -c “echo /usr/local >> /etc/ld.so.conf”
sudo sh -c “echo /usr/local/lib >> /etc/ld.so.conf”
sudo ldconfigwget http://go-mono.com/sources/mono/mono-1.2.5.1.tar.bz2
tar xvf mono-1.2.5.1.tar.bz2
rm mono-1.2.5.1.tar.bz2
cd ~/Desktop/src/mono-1.2.5.1
./configure –prefix=/usr/local -with-preview=yes
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/gtk-sharp/gtk-sharp-1.0.10.tar.gz
tar xzf gtk-sharp-1.0.10.tar.gz
rm gtk-sharp-1.0.10.tar.gz
cd ~/Desktop/src/gtk-sharp-1.0.10
./configure –prefix=/usr/local -with-preview=yes
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/gtk-sharp210/gtk-sharp-2.10.2.tar.bz2
tar xvf gtk-sharp-2.10.2.tar.bz2
rm gtk-sharp-2.10.2.tar.bz2
cd ~/Desktop/src/gtk-sharp-2.10.2
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/gecko-sharp2/gecko-sharp-2.0-0.12.tar.gz
tar xzf gecko-sharp-2.0-0.12.tar.gz
rm gecko-sharp-2.0-0.12.tar.gz
cd ~/Desktop/src/gecko-sharp-2.0-0.12
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/gnome-sharp2/gnome-sharp-2.16.0.tar.gz
tar xzf gnome-sharp-2.16.0.tar.gz
rm gnome-sharp-2.16.0.tar.gz
cd ~/Desktop/src/gnome-sharp-2.16.0
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/gtksourceview-sharp2/gtksourceview-sharp-2.0-0.11.tar.bz2
tar xvf gtksourceview-sharp-2.0-0.11.tar.bz2
rm gtksourceview-sharp-2.0-0.11.tar.bz2
cd ~/Desktop/src/gtksourceview-sharp-2.0-0.11
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/monodoc/monodoc-1.2.5.zip
unzip monodoc-1.2.5.zip
rm monodoc-1.2.5.zip
cd ~/Desktop/src/monodoc-1.2.5
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/mono-tools/mono-tools-1.2.4.tar.bz2
tar xvf mono-tools-1.2.4.tar.bz2
rm mono-tools-1.2.4.tar.bz2
cd ~/Desktop/src/mono-tools-1.2.4
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://go-mono.com/sources/mono-debugger/mono-debugger-0.50.tar.bz2
tar xvf mono-debugger-0.50.tar.bz2
rm mono-debugger-0.50.tar.bz2
cd ~/Desktop/src/mono-debugger-0.50
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearwget http://download.gnome.org/sources/glade3/3.4/glade3-3.4.0.tar.bz2
tar xvf glade3-3.4.0.tar.bz2
rm glade3-3.4.0.tar.bz2
cd ~/Desktop/src/glade3-3.4.0
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearsudo aptitude install monodoc-manual –with-recommends –assume-yes
sudo aptitude install monodevelop-boo –with-recommends –assume-yes
sudo aptitude install monodevelop-java –with-recommends –assume-yes
sudo aptitude install monodevelop-nunit –with-recommends –assume-yes
sudo aptitude install monodevelop-versioncontrol –with-recommends –assume-yes
sudo aptitude install monodevelop-query –with-recommends –assume-yes
sudo aptitude install nemerle –with-recommends –assume-yes
sudo aptitude install monodoc-gtk-manual –with-recommends –assume-yes
sudo aptitude install monodoc-gecko-manual –with-recommends –assume-yes
sudo aptitude install monodoc-nunit-manual –with-recommends –assume-yes
sudo aptitude install monodoc-browser –with-recommends –assume-yes
sudo aptitude install monodoc-http –with-recommends –assume-yes
sudo aptitude install monodoc-viewer –with-recommends –assume-yeswget http://go-mono.com/sources/monodevelop/monodevelop-0.15.tar.bz2
tar xvf monodevelop-0.15.tar.bz2
rm monodevelop-0.15.tar.bz2
cd ~/Desktop/src/monodevelop-0.15
./configure –prefix=/usr/local
make
sudo make install
cd ~/Desktop/src
clearsudo ldconfig
Run those two bash scripts in order, it takes awhile to do its thing, especially if you’re missing most of the dependencies from the first step, but it worked FLAWLESSLY for me on Ubuntu 7.10 Gutsy Gibbon! Good luck!

This is the first of a series of articles describing my journey to keeping all my personal data synchronized. I think I have finally found a solid way to keep all of my data (Contacts, Events Calendar, To-Do List, Notes) across all of my devices. Of course, my ultimate goal is to get all this data to be synchronized two ways to a centralized location no matter what device or location I make changes from.
I guess I shouldn’t call this a ‘organizational solution’, but it is what I have been using for awhile now. It’s been ‘OK’ to use, as having google store all my info on their servers and strictly using web browsers to access it eliminates the need for ’synchronization’ here. Again, when you throw a mobile device into the mix, things become ugly.

Here’s the tough one. I struggled a lot with figuring out how to keep my last phone (Motorola MPX220 Smart Phone) sync’d with google calendar mainly. I used to have a scenerio that i wanted to avoid this time where the phone would sync with outlook which would sync with the server. This was ugly, and I wanted my phone this time to sync directly with the server. Moreover, I wanted my phone’s built in calendar, contacts, to-do list, and notes functionality to be used instead of some third party java app.