하나의 시스템에서 여러 버전의 unison을 사용하는 방법은 무엇입니까?

하나의 시스템에서 여러 버전의 unison을 사용하는 방법은 무엇입니까?

기계가 두 대 있어요. 하나는 unison v. 2.40(Debian Jessie)이고 다른 하나는 unison-allunison 버전 2.32, 2.40 및 2.48을 가져오는 패키지를 설치한 새로운 버전(Debian Stretch)입니다. 그러나 2.48 버전만 제공되기 때문에 2.40을 새 컴퓨터에서 실행할 수 없습니다. 내가 무엇을 하든 나는 다음을 얻습니다.

expected "Unison 2.40\n" but received "Unison 2.48\n\000\000\000\000\017",

unison-allv.2.40을 명시적으로 제거하고 설치하여 문제를 해결했는데, 이 컴퓨터에서 두 개의 동시 버전의 unison을 사용하려면 어떻게 해야 하는지 궁금합니다.

답변1

나는 이 문제에 직면했고 답을 찾는 데 시간이 걸렸습니다! 그래서 여기에 답이 있습니다. 그것은 저에게 효과적이었습니다.

여러 버전의 unison을 사용하려면 unison-all다음을 설치하십시오.

여러 버전의 Unison 사용고객

아래와 같이 버전 번호를 추가하여 실행할 특정 버전을 선택하세요.

unison-2.40 ...

또는 최신 버전을 실행하려면 다음을 입력하세요.

unison

여러 버전의 Unison 사용섬기는 사람

-addversionno다음과 같이 클라이언트 버전의 Unison에 이 태그를 사용하여 서버에서 일치하는 Unison 버전을 호출하도록 지시합니다 .

unison -addversionno

상세 사항은

아직도 받는다면

Fatal error: Received unexpected header from the server

이것 좀 봐해결책.

답변2

설치가 더 쉬워졌습니다.정적 Unison 버전, 모든 클라이언트와 서버가 정확히 동일한 시스템 버전을 갖기를 기대하는 대신.

모든 시스템에서 unison Debian 패키지를 제거하고 모든 곳에서 똑같은 스크립트를 시작했습니다.

#!/bin/bash
set -e

mkdir /tmp/unison
cd /tmp/unison
curl -LO https://github.com/bcpierce00/unison/releases/download/v2.53.4/unison-2.53.4-ubuntu-x86_64-static.tar.gz
tar xvfz unison-2.53*
cd bin
chmod 755 unison unison-fsmonitor
sudo chown root:root unison unison-fsmonitor
sudo mv unison unison-fsmonitor /usr/local/bin/
cd /tmp/
rm -r unison
unison -version

이제 각 클라이언트와 서버는 다음 사항에 동의하므로 함께 대화할 수 있습니다.

❯ unison -version
unison version 2.53.4 (ocaml 4.14.1)

libc, ocaml 또는 패키지 저장에 더 이상 문제가 없습니다! 오래된 서버에서도 최신 Unison 버전을 사용할 수 있습니다.

관련 정보