1 votes

Comment installer mono 4.0.5.1 (pas la dernière version) sur Ubunty 16.04 LTS ?

CONTEXTE

J'ai récemment effectué la mise à niveau de la version 15.10 à la version 16.04 et je rencontre un problème avec une application. En fait, il est tout à fait possible que j'aie le même problème que celui que j'ai rencontré dans le passé. ce type .

Dans mon cas, j'ai le même problème avec CumulusMX :

Not working, 16.04: mono was Stable 4.4.2.11
Last working, 15.10: mono was Debian 3.2.8+dfsg-4ubuntu4

Cela semble être en accord avec les informations suivantes que j'ai trouvées aquí :

Mono 4.2 est connu pour ne pas fonctionner avec Cumulus MX avec des stations USB, pour raisons actuellement inconnues

En un mot, je comprends que le dernier mono La version qui supporte ma station météo est la 4.0.5.1, basée sur le problème de cet autre type. Voici ce que je voudrais installer.

NOUVELLE INSTALLATION 16.04

J'ai réinstallé Ubuntu et effectué les modifications suivantes :

$ sudo touch /etc/apt/sources.list.d/mono-xamarin.list
$ sudo vi /etc/apt/sources.list.d/mono-xamarin.list

# Type in:
# deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.0.5.1 main
# and save.

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A6A19B38D3D831EF
$ sudo apt update

J'ai pensé que cela me permettrait d'installer le programme souhaité mono car j'obtiens les résultats suivants :

$ apt-cache madison mono-devel
mono-devel | 4.2.1.102+dfsg2-7ubuntu4 | http://ca.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
mono-devel | 4.2.1.102+dfsg2-7ubuntu4 | http://ca.archive.ubuntu.com/ubuntu xenial/main i386 Packages
mono-devel | 4.0.5.1-0xamarin1 | http://download.mono-project.com/repo/debian wheezy/snapshots/4.0.5.1/main amd64 Packages
mono-devel | 4.0.5.1-0xamarin1 | http://download.mono-project.com/repo/debian wheezy/snapshots/4.0.5.1/main i386 Packages

Cependant, l'installation échoue avec le problème suivant :

$ sudo apt install mono-devel=4.0.5.1-0xamarin1
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 mono-devel : Dépend: libmono-cecil-private-cil (< 4.0.5.2) mais 4.2.1.102+dfsg2-7ubuntu4 devra être installé
              Dépend: mono-mcs (= 4.0.5.1-0xamarin1) mais 4.2.1.102+dfsg2-7ubuntu4 devra être installé
              Dépend: mono-gac (= 4.0.5.1-0xamarin1) mais 4.2.1.102+dfsg2-7ubuntu4 devra être installé
              Dépend: mono-xbuild (= 4.0.5.1-0xamarin1) mais 4.2.1.102+dfsg2-7ubuntu4 devra être installé
              Dépend: libmono-cil-dev (= 4.0.5.1-0xamarin1) mais 4.2.1.102+dfsg2-7ubuntu4 devra être installé
              Dépend: libmono-2.0-dev (< 4.0.5.1-0xamarin1.1~) mais 4.2.1.102+dfsg2-7ubuntu4 devra être installé
              Recommande: mono-csharp-shell mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

D'après ces résultats, je comprends que je suis peut-être au pays des horreurs de la dépendance. Les résultats disent aussi littéralement que je peux tenter l'impossible.

QUESTION

Que dois-je faire pour installer mono 4.0.5.1 ?

0voto

qwerty3883 Points 1

J'ai eu un problème similaire récemment. Le problème ici est que même si vous spécifiez une version inférieure de mono-devel, apt-get essaiera toujours d'installer les versions les plus récentes de ses dépendances, ce qui, bien sûr, ne fonctionnera pas.

On peut contourner ce problème en creusant plus profondément dans les internes d'apt et en utilisant le mécanisme 'apt_preferences'.

Pour moi, placer un fichier dans /etc/apt/preferences.d avec le contenu suivant a résolu le problème :

$ cat /etc/apt/preferences.d/mono
Package: /libmono.*/
Pin: release l=xamarin*
Pin-Priority: 990

Package: /^mono.*/
Pin: release l=xamarin*
Pin-Priority: 990

Pour expliquer brièvement les détails, pour tous les paquets qui contiennent 'libmono' dans leur nom ou qui commencent par 'mono', les distributions avec le label 'xamarin[1,2,...]' sont préférées. Cela a pour effet d'ignorer les paquets les plus récents d'ubuntu (par exemple 4.2.1) pour tout ce qui concerne mono.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X