Unison "Erro fatal durante o desempacotamento"

2

Instalei o unison 2.48.4 em três máquinas, duas rodando o Linux Mint 17 e um Linux Mint 18. Eu sincronizo via SSH.

Os dois 17s sincronizam sem problemas. No entanto, os 18 não podem sincronizar com nenhum dos outros dois. A lista de possíveis transferências é gerada, mas quando pressiono "GO", recebo o seguinte:

Fatal error: Server: Fatal error during unmarshaling (input 
  value: bad bigarray kind), possibly because client and server 
  have been compiled with different versions of the Ocaml compiler.

Eu recebo a mesma mensagem quando uso o gráfico ou a versão de linha de comando do unison client. Além disso, quando eu tento unison 2.48.3 no lado do cliente, o que me faz acreditar que é a diferença na versão de hortelã (17 vs 18), que cria o problema.

Eu não compilei nada, apenas instalei a partir dos repositórios de repos ou baixei deb.

    
por mathstranger 13.09.2016 / 22:07

2 respostas

0

O protocolo Unison é específico da versão. A versão N não pode falar com a versão M com M ≠ N.

Debian (e derivados: Ubuntu, Mint,…) fornece um pacote unison-all que apesar de o nome contém algumas versões recentes do Unison, mas não as mais recentes, nem todas as versões anteriores. Eu não chequei, mas eu espero que unison-all no Mint 18 contenha a versão que está no Mint 17.

Como alternativa, você pode instalar todas as versões do Unison que você usa em qualquer lugar, copiando-as para /usr/local/bin ou ~/bin na máquina que você usa como seu hub Unison. O binário unison-NN.NN depende apenas da biblioteca padrão, então funciona em qualquer Linux não embarcado do século XXI sem ter que instalar nada extra. Isto é o que eu faço. Você precisa se lembrar de atualizar este binário quando uma correção de bug é lançada.

A menos que você organize a mesma versão do Unison em todos os lugares, será necessário avisá-lo para invocar a versão correspondente no lado remoto, colocando addversionno = true em seu (s) perfil (s).

    
por 14.09.2016 / 03:40
0

Sim, eu já vi esse erro antes. Além de ter as mesmas versões do Unison em execução, esses binários do Unison também (algumas vezes) precisam ser compilados com a mesma versão do OCaml. Também há algum outro erro que vi quando o Unison é compilado com a versão OCaml > 4, mas não me lembro dos detalhes disso.

Então, suas opções são:

  1. Faça como Gilles diz e copie os binários de uma máquina para as outras.

  2. Baixe, compile e instale a versão correta de OCaml (eu tive que usar 3.12.1), e use que para compilar e instalar Uníssono da fonte .

por 14.09.2016 / 16:46