[Mono-list] Upgrading Mono from source release: protocol

Mario Carrion mario.carrion at gmail.com
Wed Mar 24 10:03:13 EDT 2010

On Tue, Mar 23, 2010 at 6:06 PM, Abe Gillespie <abe.gillespie at gmail.com> wrote:
> I've been wondering about this for a while now, and since I'm running
> more and more sites on Mono, I figured it'd be nice to have an
> official process in place.  What is the best and official way to
> upgrade Mono?  The scenario here is compiling from source.
> What I usually do is this:
> 1.  Download all the source packages into
> /usr/local/src/mono-<latest-version> (libgdi, mono, xsp, and mod_mono)
> 2.  Unpack everything.
> 3.  Configure and build each.
> 4.  Navigate into the /usr/local/src/mono-<previous-version> dir and
> run the "make uninstall" script for each package.
> 5.  Navigate back into /usr/local/src/mono-<latest-version> and run
> the "make install" script for each package.
> 6.  Finally, I delete the <previous-version> sources and tar and zip
> the <latest-version> sources.
> A couple of questions:
> 1.  Is there an easy way to install multiple versions in parallel and
> then switch back and forth by a simple config? - if you recall, I had
> an issue a couple of weeks back that took my storefront down when I
> upgraded my Mono version.  It was pretty painful to switch back.  It
> would be nice if I could quickly revert, via config, to the previous
> version.  That way I could go back and forth and test until I could
> get things stable.
> 2.  Is there any easier way to do what I'm doing here?
> 3.  Is there a guide?
> If no on 3), then if you can give me some pointers then I'd be happy
> to put a guide together myself.

I always use Pulque[1], after installing it you need to define an
alias in your .bashrc (something like pswitch), and then you use this
alias to create your parallel environments:

pswitch trunk
pswitch 2.6
pswitch whatever

to build, you will use pconfigure instead of configure, pautoagen
instead of autogen.sh, and so on. USING[3] explains the "new"
commands, you don't have to specify a prefix or anything else, because
after calling "pswitch" all the environment variables are set. There
are some other nice things (if you are using VCS to get the sources)
in Pulque. I blogged about it a couple of months ago[2] a video is

By default the files are installed in "$HOME/.root-env/<prefix-name>"

Have fun
- Mario

[1] http://github.com/mariocarrion/pulque/tree/v0.1
[2] http://blog.carrion.ws/2010/01/25/parallel-development-environments-pulque/
[3] http://github.com/mariocarrion/pulque/blob/v0.1/USING

More information about the Mono-list mailing list