Compiler Mono 3.x sous Debian
J’ai voulu installer NzbDrone sur mon serveur Debian. Ce dernier s’appuie sur Mono, une implémentation open-source de .Net de Microsoft. Malheureusement, à l’heure actuelle, seule la version 2.10.8 datant de 2011 est disponible sous Debian alors qu’une version 3.2 ou supérieure est recommandée pour NzbDrone.
1 2 3 4 5 6 7 | root@server:~# apt-cache policy mono-runtime mono-runtime: Installed: (none) Candidate: 2.10.8.1-8 Version table: 2.10.8.1-8 0 500 http://mirror.ovh.net/ftp.debian.org/debian/ wheezy/main amd64 Packages |
Cet article va donc présenter l’installation de Mono sur une Debian Wheezy 7.5.
Environnement et Pré-requis
Cette compilation a été réalisée sur un VPS d’OVH fraîchement ré-installé. Quelques packages sont nécessaires avant tout, mais partant d’une installation neuve, la liste suivante devrait être exhaustive :
1 2 | root@server:~# apt-get install build-essential autoconf automake libtool gettext gcc gawk g++ bzip2 libgdiplus [...] |
Il reste maintenant à récupérer la version 3.2.8 de Mono sortie en février 2014. A l’heure où j’écris ces lignes, la version 3.4.0 est sortie et est censée être stable, ceci dit, je suis tombé sur des bugs à la compilation qui étaient censés être déjà corrigés. La 3.2.8 ira donc très bien pour le moment.
1 2 3 4 5 6 | root@server:~# wget http://download.mono-project.com/sources/mono/mono-3.2.8.tar.bz2 --2014-08-10 19:08:53-- http://download.mono-project.com/sources/mono/mono-3.2.8.tar.bz2 [...] 2014-08-10 19:09:10 (4.48 MB/s) - `mono-3.2.8.tar.bz2.1' saved [77515552/77515552] root@server:~# tar -xjvf ./mono-3.2.8.tar.bz2 |
Compiler Mono 3.2.8
Il ne reste plus ensuite qu’à compiler.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | root@server:~# cd ./mono-3.2.8/ root@server:~/mono-3.2.8# ./configure --prefix=/usr/local [...] config.status: executing default commands mcs source: mcs Engine: GC: sgen and bundled Boehm GC with typed GC and parallel mark TLS: __thread SIGALTSTACK: yes Engine: Building and using the JIT oprofile: no BigArrays: no DTrace: no LLVM Back End: no (dynamically loaded: no) Libraries: .NET 2.0/3.5: yes .NET 4.0: yes .NET 4.5: yes MonoDroid: no MonoTouch: no JNI support: IKVM Native libgdiplus: assumed to be installed zlib: root@server:~/mono-3.2.8# make [...] root@server:~/mono-3.2.8# make install [...] |
La compilation prends un peu de temps, surtout sur un VPS ! C’est donc le bon moment pour aller prendre un café.
Si jamais vous obtenez des erreurs du type configure: error: You need to install g++
, il suffit de rajouter g++, dans cet exemple, à la liste des packages à installer.
En cas d’erreur plus cryptique, passez la commande make V=1
afin d’obtenir plus d’info lors de la compilation.
Pour Conclure
On trouve beaucoup d’articles sur internet avec des procédures d’installation assez complexes ou contradictoires. En même temps, ils concernent des versions anciennes. Il est aussi possible d’installer Mono depuis git mais il faut d’abord compiler d’autres librairies etc. Le tarball est vraiment la méthode la plus directe et la plus simple.
Il est aussi possible de configurer un FastCGI serveur mono avec Nginx pour faire tourner ses web apps. Mais pour NzbDrone, pas besoin d’aller aussi loin.
La version 3.2.8 de Mono sera disponible dans la prochaine version de Debian. En attendant, j’espère que cet article pourra dépanner.
Une pensée sur “Compiler Mono 3.x sous Debian”