web-dev-qa-db-fra.com

Comment installer Unison 2.40 sur Ubuntu 16.04 xenial (pour résoudre "Erreur fatale: en-tête inattendu reçu")

Sur mes autres ordinateurs, j'ai la version 2.40.102 de Unison (dernière version disponible) et sur mon ordinateur de bureau Ubuntu 16.04 xenial, j'ai la version Unison 2.48.3.

En essayant de synchroniser:

kayd@Trunk:~$ unison . ssh://pi@mizu/.
...
Fatal error: Received unexpected header from the server:
 expected "Unison 2.48\n" but received "Unison 2.40\n\000\000\000\000\017", 
which differs at "Unison 2.40".

Diverses sources m'indiquent d'installer unison-all, ce que j'ai fait, mais il ne contient que la version 2.48:

kayd@Trunk:~$ ls -l /usr/bin/unison*
lrwxrwxrwx 1 root root      24 Mai 20 22:15 /usr/bin/unison -> /etc/alternatives/unison
lrwxrwxrwx 1 root root      13 Mär 18 16:10 /usr/bin/unison-2.48 -> unison-2.48.3
-rwxr-xr-x 1 root root 2169968 Mär 18 16:10 /usr/bin/unison-2.48.3
lrwxrwxrwx 1 root root      13 Mär 18 16:10 /usr/bin/unison-latest-stable -> unison-2.48.3

La ma question est:

Comment puis-je installer la version 2.40 sur xenial?

5
kay_D

Aujourd'hui, j'ai le même problème: Serveur avec Raspbian (Unison 2.40) et deux clients (Ubuntu 14.04/Unison 2.40 et Ubuntu 16.04/Unison 2.48).

À cause de Raspbian, je ne pouvais pas (facilement) passer à 2.48 sur le serveur. Mais copier les binaires 2.40 d’Ubuntu 14.04 à Ubuntu 16.04 a fonctionné:

ubu1604# cd /usr/bin; Sudo scp -p ubu1404:/usr/bin/unison-2.40.102* .

Vous pouvez ensuite appeler directement unison-2.40.102 ou modifier les liens /etc/alternatives/unison* en fichiers binaires respectifs.

Modifier:

Après la mise à niveau de 14.04 à 16.04 sur ma deuxième machine, le problème me posait à nouveau. Obtenir et installer le fichier .deb m'aidait, grâce à kay_D.

Changer uniquement les liens dans/etc/alternatives n’était pas suffisant, car le fichier .desktop respectif appelait directement le fichier binaire unison. Alors j'ai changé /usr/share/applications/unison-gtk.desktop

Exec=unison-gtk

(Parfois, je préfère appeler des programmes non pas à partir d'un terminal, mais à partir du menu)

2
ridgy

J'ai trouvé un fichier deb ici , ce qui est pour fidèle, mais fonctionne de toute façon, a téléchargé la version 64 bits et utilisé

Sudo dpkg --install ./unison-gtk_2.40.102-2ubuntu1_AMD64.deb

à installer. Basé sur la réponse de ridgy , j'utilise unison-2.40-gtk pour appeler unison afin de le synchroniser avec mon RaspberryPis.

9
kay_D

Oui, les versions de Unison que vous utilisez doivent être identiques. En effet, le format du fichier d’archive utilisé par Unison pour garder trace de tout est amélioré changé dans chaque nouvelle version.

Si vous voulez vraiment installer la 2.40 sur Xenial, téléchargez simplement le source pour Unison , compilez-le avec OCaml et installez-le.

Bien que je recommanderais d'installer une version plus récente d'Unison sur votre autre ordinateur .

2
Mike Pierce