Parallel-Installation von Mono unter Ubuntu

Die Pakete, die in der Paketverwaltung von Ubuntu zu finden sind, laufen eigentlich ziemlich gut, auch wenn sie meistens out-dated sind und bei einem Ubuntu-Update vom Hersteller bereits eine noch neuere Version verfügbar ist. Das kommt daher, dass die Macher von Ubuntu jeweils noch kleine Änderungen vornehmen im Code, und sie auch dafür sorgen, dass die Abhängigkeiten der einzelnen Pakete aufgelöst werden können. Ein, zwei Klicks in der Paketverwaltung (oder halt per Handeingabe via Konsole) oder im Software-Center und das neue Programm wird mitsamt allen benötigten Paketen installiert. Klar, bei diesen Versionen fehlen die neusten Features, obwohl sie in einschlägigen Fachzeitschriften und auf Homepages bereits ausgiebig besprochen werden.

Für den Normaluser stellt das meistens kein Problem dar, sind die neusten Möglichkeiten meist eh noch ziemlich buggy und erst mit dem nächsten Release wirklich funktionsfähig. Oder wie es einmal einer unserer Kunden ausgedrückt hat: „Sorry, aber auf unserem System wird sicherlich nie ein x.0-Version von eurer Software installiert.“

Trotzdem kann es vorkommen, dass man mal sehnsüchtig auf ein solch neues Feature wartet oder der nervige Bug die effektive Nutzung eines Tools praktisch verhindert. Und bis Ubuntu die neuste Version in seiner Paketverwaltung anbietet, kann es doch mehrere Monate dauern. Da bleibt nichts anderes übrig, als die neuste Version direkt vom Hersteller zu beziehen und selber zu installieren. Doch möchte man die „alte“ Version nicht zwingend löschen, da sonst die Paketverwaltung die Abhängigkeiten bei neu installierten Programmen nicht mehr richtig auflösen kann, da sie nicht mitkriegt, dass das Tool/Library bereits installiert ist (einfach neuer und evtl. an einem anderen Ort).

Ein möglicher Fall ist die Installation von Mono. In der Ubuntu-Paketverwaltung findet sich zur Zeit die Version 2.6.7. Mit der neusten Version 2.8 wurden nun aber doch einige neue Features hinzugefügt. Wie hier beschrieben, ist eine parallele Installation der neusten Mono-Version unter Ubuntu möglich. Nachfolgend, wie ich es bei mir zum Laufen gekriegt habe.

  1. Erstellen einer eigenen Umgebung für das neue Mono. Dazu das folgende Script in der Datei „~/mono-dev-env“ speichern.
  2. #!/bin/bash
    MONO_PREFIX=/opt/mono
    GNOME_PREFIX=/usr
    export DYLD_LIBRARY_FALLBACK_PATH=$MONO_PREFIX/lib:$DYLD_LIBRARY_FALLBACK_PATH
    export LD_LIBRARY_PATH=$MONO_PREFIX/lib:$LD_LIBRARY_PATH
    export C_INCLUDE_PATH=$MONO_PREFIX/include:$GNOME_PREFIX/include
    export ACLOCAL_PATH=$MONO_PREFIX/share/aclocal
    export PKG_CONFIG_PATH=$MONO_PREFIX/lib/pkgconfig:$GNOME_PREFIX/lib/pkgconfig
    export PATH=$MONO_PREFIX/bin:$PATH
    PS1="[mono] \w @ "

    Sobald diese Umgebung geladen wird, ist die Mono-Version auf 2.8 gesetzt. Das erlaubt das Ausführen der „normalen“ (von Synaptic installierten) Version. Wenn nun aber die neue Version verwendet werden soll, dann muss die Umgebung zuerst mit dem folgenden Kommando gestartet werden:

    source ~/mono-dev-env
  3. Erstellen eines neuen Verzeichnis „mono-2.8“ im Home-Verzeichnis
  4. Mittels Synaptic-Paketverwaltung die Pakete libgtk2.0-cil, libgtk2.0-cil-dev,  libglade2.0-cil und libglade2.0-cil-dev installieren. Das installiert die benötigten Libraries gtk-sharp-2.0 und glade-sharp-2.0.
  5. Download und entpacken von mono, libgdiplus und mono-tools in das neu erstelle Verzeichnis
  6. Öffnen einer Konsole und ausführen des obigen Environment-Scripts
  7. Bilden und installieren der einzelnen Komponenten in /opt/mono:
#libgdiplus
cd libgdiplus-2.8
./configure --prefix=$MONO_PREFIX
make
sudo make install

#mono
cd ../mono-2.8
./configure --prefix=$MONO_PREFIX
make
sudo make install

#mono-tools
cd ../mono-tools-2.8
./configure --prefix=$MONO_PREFIX
make
sudo make install

Falls mehr als eine zusätzliche Version installiert werden soll, muss einfach das Environment-Script dupliziert und jeweils angepasst werden (MONO_PREFIX=/wo/immer/man/will). Die Installation mit den neusten Sourcen direkt aus Git sollte ähnlich verlaufen, auch wenn ich es nicht getestet habe (und es evtl. auch nicht stabil läuft).

Natürlich kann man bei den einzelnen Komponenten noch zusätzliche Flags setzen. Aber eigentlich muss ich das ja nicht erwähnen. Wer sich die Mühe macht und die letzte Version von Mono selber kompiliert, nur um auf die letzten Features zurückgreifen zu können, der wird genug versiert sein mit dem Umgang mit Computern und Compilern.


Beitrag veröffentlicht

in

, ,

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert