나는 세 대의 컴퓨터에 unison 2.48.4를 설치했습니다. 두 대는 Linux Mint 17을 실행하고 다른 한 대는 Linux Mint 18을 실행합니다. SSH를 통해 동기화합니다.
두 개의 17을 동기화하는 데에는 문제가 없습니다. 그러나 18개는 다른 2개와 동기화할 수 없습니다. 잠재적인 전송 목록이 생성되지만 "GO"를 누르면 다음과 같은 결과가 나타납니다.
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.
Unison 클라이언트의 그래픽 또는 명령줄 버전을 사용할 때에도 동일한 메시지가 나타납니다. 또한 클라이언트에서 일관된 2.48.3을 시도했을 때 이것이 문제를 일으키는 민트 버전(17 대 18)의 차이라고 믿게 되었습니다.
나는 아무것도 직접 컴파일하지 않고 저장소에서 설치하거나 deb 패키지를 다운로드했습니다.
답변1
Unison 프로토콜은 버전별로 다릅니다. M ≠ N인 경우 버전 N은 버전 M과 통신할 수 없습니다.
Debian(및 그 파생 제품: Ubuntu, Mint 등)은 다음을 제공합니다.만장일치이름에도 불구하고 Unison의 최신 버전 중 일부가 포함되어 있지만 이전 버전이 모두 포함되어 있는 것은 아닙니다. 아직 확인하지는 않았지만 unison-all
Mint 18에는 Mint 17에 있는 버전이 포함될 것으로 예상됩니다.
/usr/local/bin
또는 Unison 허브로 사용되는 컴퓨터에 복사하여 어디서나 사용하는 모든 버전의 Unison을 설치할 수 있습니다 . ~/bin
이 unison-NN.NN
바이너리는 표준 라이브러리에만 의존하므로 추가 설치 없이 21세기 비임베디드 Linux에서 실행됩니다. 이것이 제가하는 것입니다. 버그 수정이 나오면 이 바이너리를 업데이트하는 것을 기억해야 합니다.
addversionno = true
어디에서나 동일한 버전의 Unison을 실행하도록 준비하지 않는 한, 구성 파일을 입력하여 원격 측에서 일치하는 버전을 호출하도록 지시 해야 합니다 .
답변2
예, 이전에 이 오류를 본 적이 있습니다. 동일한 버전의 Unison을 실행하는 것 외에도 이러한 Unison 바이너리는 (때때로) 동일한 버전의 OCaml로 컴파일되어야 합니다. OCaml 버전 4 이상에서 Unison을 컴파일할 때 다른 오류도 보았지만 자세한 내용은 기억나지 않습니다.
따라서 귀하의 옵션은 다음과 같습니다.
답변3
네트워크에서 Unison을 사용하려면 양쪽 끝에서 동일한 버전을 실행해야 합니다.동일한 버전의 OCaml 컴파일러로 빌드. 이는 일반적으로 표시되는 메시지의 원인이므로 문제의 원인일 수 있습니다. 대부분의 경우 모든 Unison 바이너리는 배포 저장소에 제공되는 OCaml 버전을 사용하여 빌드됩니다.
최신 Unison 버전(2.40부터 시작)은 다음과 같이 사용 가능합니다.바이너리 다운로드프로젝트 자체의 관점에서. 2.51.3부터는 다양한 OCaml 버전에 대한 빌드도 제공합니다. 원하는 것을 잡고 두 시스템 모두에 배포하면 양쪽 끝에서 동일한 작업이 실행됩니다.
또는 Mint 18 시스템을 Mint 17과 함께 제공되는 Unison 패키지로 다운그레이드할 수 있습니다 . .deb
저장소에서 Mint 17용 패키지를 가져와서 dpkg
. 제외하고는 종속성이 없습니다 libc
.)
업데이트 프로그램이 다음에 실행될 때 변경 사항을 취소하지 않도록 하려면 패키지를 보류 상태로 두십시오.
sudo apt-mark hold unison-gtk
(나중에 업그레이드하기로 결정한 경우 이 명령을 다시 실행하면 unhold
이 작업이 취소되어 패키지를 다시 업그레이드할 수 있습니다.)
~/.unison/ar*
양쪽 끝에서 Unison 캐시를 삭제해야 할 수도 있습니다 .~/.unison/fp*
장기적으로 팀은 OCaml 버전 종속성을 제거하기 위해 노력하고 있습니다. (문제를 이해합니다.375화, 개발자는 자신의 변경 사항이 반영될 다음 버전을 기다리고 있습니다.) 아마도 버전 2.52나 2.53에서 이 기능을 바로 사용할 수 있을 것입니다. 또한 유선 프로토콜이 변경되지 않는 한 서로 다른 Unison 버전 간의 상호 운용성을 도입할 계획입니다(407화), 하지만 시간이 더 오래 걸릴 수 있습니다.