マシンが2台あります。 1つはunison v。 2.40(Debian Jessie)で、もう1つはunison-all
unisonバージョン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-all
v.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バージョンを使用できます。