1つのシステムで複数のバージョンのunisonを使用する方法は?

1つのシステムで複数のバージョンのunisonを使用する方法は?

マシンが2台あります。 1つはunison v。 2.40(Debian Jessie)で、もう1つは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を明示的にアンインストールしてインストールして問題を解決しましたが、このコンピュータで2つの同時バージョンの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バージョンを使用できます。

関連情報