ユニソン「ソート解除中に致命的なエラーが発生しました」

ユニソン「ソート解除中に致命的なエラーが発生しました」

私は3台のコンピュータにunison 2.48.4をインストールしました。 2台はLinux Mint 17を実行し、もう1台はLinux Mint 18を実行します。 SSH経由で同期します。

2つの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-allMint 18にはMint 17のバージョンが含まれると予想されます。

/usr/local/binまたは、Unisonハブとして使用されているコンピュータにコピーして、どこでも使用しているすべてのバージョンのUnisonをインストールできます。~/binこのunison-NN.NNバイナリは標準ライブラリにのみ依存するため、追加のインストールなしで21世紀の非埋め込みLinuxで実行されます。これが私がすることです。バグ修正が出たら、このバイナリを更新することを覚えておく必要があります。

addversionno = trueどこでも同じバージョンのUnisonを実行する準備ができていない限り、設定ファイルを入力してリモート側で一致するバージョンを呼び出すように指示する必要があります。

答え2

はい、以前このエラーを見たことがあります。同じバージョンのUnisonを実行することに加えて、これらのUnisonバイナリは(時々)同じバージョンのOCamlにコンパイルする必要があります。 OCamlバージョン4以降でUnisonをコンパイルするときに他のエラーも見られましたが、詳細は覚えていません。

したがって、あなたのオプションは次のとおりです。

  1. 〜のようにザイルズは言うあるシステムから別のシステムにバイナリをコピーします。

  2. 正しいバージョンをダウンロード、コンパイル、インストールしてください。オカミール(私は3.12.1を使用する必要がありました。)それを使ってコンパイルしてインストールしました。ソースで一貫している

答え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話、開発者は自分の変更が反映される次のバージョンを待っています。また、有線プロトコルが変更されない限り、異なるUnisonバージョン間の相互運用性を導入する予定です(第407話)、しかし時間がかかることがあります。

関連情報