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?

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 binarys 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 binarys respectifs.

Modifier:

Après la mise à niveau de 14.04 à 16.04 sur ma deuxième machine, le problème persistait à nouveau. Obtenir et installer le fichier .deb a été facilité, grâce à kay_D.

Changer uniquement les liens dans / etc / alternatives n’était pas suffisant, car le fichier .desktop respectif appelait directement le fichier binary 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)

J’ai trouvé un fichier deb ici , ce qui est pour digne de confiance, 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 invoquer unison pour la synchronisation avec mon RaspberryPis

Oui, les versions de Unison que vous utilisez doivent être identiques. Cela est dû au fait que le format du fichier d’archive utilisé par Unison pour garder trace des choses a été amélioré dans chaque nouvelle version.

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

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