Como instalar Unison 2.40 no Ubuntu 16.04 xenial (para resolver “Fatal error: Received unexpected header”)

5

Nos meus outros computadores eu tenho a versão uníssono 2.40.102 (esta é a última versão disponível), e no meu desktop ubuntu 16.04 xenial eu tenho a versão uníssono 2.48.3.

Ao tentar sincronizar:

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
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
0
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
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
0%pre%0%pre%0%pre%07", which differs at "Unison 2.40".
0%pre%0%pre%07", which differs at "Unison 2.40".

Várias fontes me dizem para instalar unison-all , o que eu fiz, mas contém apenas a versão 2.48:

%pre%

A minha pergunta é:

Como posso instalar a versão 2.40 no xenial?

    
por kay_D 17.07.2016 / 23:55

3 respostas

2

Hoje tive o mesmo problema: Servidor com raspbian (uníssono 2.40) e dois clientes (Ubuntu 14.04 / uníssono 2.40 e Ubuntu 16.04 / uníssono 2.48).

Por causa do raspbian, eu não consegui (facilmente) atualizar para o 2.48 no servidor. Mas copiar os 2.40-binários do Ubuntu 14.04 para o Ubuntu 16.04 funcionou:

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

Você pode então chamar unison-2.40.102 direct, ou alterar os links /etc/alternatives/unison* para os respectivos binários.

Editar:

Após a atualização de 14.04 para 16.04 no meu segundo computador, tive novamente o problema, e obtive e instalei o arquivo .deb, graças ao kay_D.

Mudar apenas os links em / etc / alternatives não foi suficiente, já que o arquivo repective .desktop chamou o unison binary diretamente. Então eu mudei /usr/share/applications/unison-gtk.desktop

Exec=unison-gtk

(Às vezes eu prefiro chamar programas não de um terminal, mas do menu)

    
por ridgy 01.08.2016 / 16:18
9

Eu encontrei um arquivo deb aqui , que é de confiança, mas aparentemente funciona de qualquer maneira, baixei o arquivo de 64 bits versão e usado

sudo dpkg --install ./unison-gtk_2.40.102-2ubuntu1_amd64.deb

para instalar. Com base na resposta do ridgy eu uso o unison-2.40-gtk para invocar o unison para sincronizar com o meu RaspberryPis

    
por kay_D 01.08.2016 / 23:57
2

Sim, as versões do Unison que você está executando precisam ser idênticas. Isso ocorre porque o formato do arquivo morto que o Unison usa para controlar o material é aprimorado alterado em cada nova versão.

Se você realmente deseja instalar o 2.40 no Xenial, faça o download do fonte para o Unison , compile-o com o OCaml e instale-o.

Embora, eu recomendaria instalar uma nova versão do Unison no seu outro computador .

    
por Mike Pierce 18.07.2016 / 08:08