私のRaspberry Piコンピュータから:
pi@mizu:~ $ unison -version
unison version 2.40.102
私のデスクトップUbuntu 16.04 xenialから:
kayd@Trunk:~$ unison -version
unison version 2.48.3
同期しようとしたとき:
kayd@Trunk:~$ unison . ssh://pi@mizu/.
...
Fatal error: Received unexpected header from the server:
expected "Unison 2.48\n" but received "Unison 2.40\n\000\000\000\000\017",
which differs at "Unison 2.40".
関連投稿1インストールしますunison-all
。インストールしましたが、バージョン2.48のみが含まれています。
kayd@Trunk:~$ ls -l /usr/bin/unison*
lrwxrwxrwx 1 root root 24 Mai 20 22:15 /usr/bin/unison -> /etc/alternatives/unison
lrwxrwxrwx 1 root root 13 Mär 18 16:10 /usr/bin/unison-2.48 -> unison-2.48.3
-rwxr-xr-x 1 root root 2169968 Mär 18 16:10 /usr/bin/unison-2.48.3
lrwxrwxrwx 1 root root 13 Mär 18 16:10 /usr/bin/unison-latest-stable -> unison-2.48.3
私が見ることができる2つのオプションは次のとおりです。
- 2.40のXenial PPAを見つけました。
- 2.48を含むラズベリー用PPAを見つけました。
これまでのところ、どちらも成功しませんでした。
以下のユーザーの回答に基づいていますマフェアーズ 271自分でコンパイルしてみようかと思いましたが、結果はちょっと悪夢だったようです。最後 Unison開発メーリングリストに投稿たとえば、国「新しいOCaml 4.03バージョンは、ライブラリにいくつかの互換性のない変更を適用しました。バージョン2.48を修正して、4.02または4.03でコンパイルし、新しいバージョンでリリースできるようにしました。」そして「PS、「ocaml 4.02.1はocaml 4.02.2と互換性がありません」という恐ろしいエラーが発生したときに報告するより良いエラー報告機能も追加しました。 」これはすべてが違うという結論につながる。高い壊れやすいので、更新された内容があれば、改訂番号が少しだけ変更されても破損することがあります。同期する必要があるコンピュータが多数あり、その一方または他のコンピュータが定期的に更新されます。
答え1
一人に会った解決策:
Debian は Ubuntu バージョンと互換性のある 2.48 でテストされました。 Piにテストリポジトリを追加する必要がありますが、優先順位が低いため、明示的に要求された場合にのみ使用されます。
次の行を追加します/etc/apt/preferences
(ファイルが存在しない場合は作成)。
Package: *
Pin: release o=Raspbian,a=stable
Pin-Priority: 500
Package: *
Pin: release o=Raspbian,a=testing
Pin-Priority: 300
次に、次の行を追加します/etc/apt/sources.list
。
deb http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi
次に、次を実行します。
sudo apt-get update
sudo apt-cache policy
確認するテスト追加したばかりのリポジトリは他のリポジトリよりも優先順位が低くなります。
ついに:
sudo apt-get install -t testing unison-all
これはPiで2.48を提供し、接続して同期することができます。
既存のバージョンとともに Unison の明示的なバージョンをインストールすることもできます。走る
sudo apt-cache search unison
提供されたバージョンを見つけて、必要なバージョンをインストールするには、次の手順を実行します。
sudo apt-get install -t testing unison2.40.102
バージョン番号を持つパッケージは実際のパッケージです。unison
常に最新バージョンに依存するメタパッケージunison-all
ですが、バージョン選択に依存するメタパッケージです。
サーバーに複数のバージョンがある場合は、-addversionno
次のオプションを使用してUnisonを実行できます。これにより、クライアントはバージョン番号をサーバーに送信し、サーバーに基本バージョンではなく同じバージョンを実行するように指示します。
あるいは、Ubuntuデスクトップで同様のことを試すこともできます。以下を行う必要があります。
- PiでUnisonバージョンを提供するディストリビューションを見つけてください。
- そのバージョンのリポジトリを
/etc/apt/sources.list
。xenial
- これに従って修正してください
etc/apt/preferences
。代わりに、現在のバージョン名と目的のUnisonバージョンを使用してくださいstable
。testing
現在のバージョンの500
優先順位が高くなります。 sudo apt-get update; sudo apt-cache policy
優先順位が正しく設定されていることを確認するには、出力を実行して確認します。そうでなければ、Ubuntuのインストールはめちゃくちゃになる可能性があります!- すべてが正常であることを確認したら、インストール
unison
(またはunison-all
明示的にビルド)して新しいリポジトリを選択します。
または、.deb
ファイルを入手して自分でインストールしてみてください。
答え2
はい、同じバージョンのUnisonを実行する必要があります。これは、Unisonがコンテンツを追跡するために使用するアーカイブファイルの形式が新しいリリースごとに改善および変更されるためです。
Unisonをソースから直接インストールするとどうなりますか? Raspberry Piに2.48をインストールすることをお勧めします。ソースコードをダウンロードできますUnison 2.48.3 ここ、これを行う方法についての指示を確認してください。ここでコンパイルしてインストールしてください。。実際、Ubuntuを実行しているデスクトップのソースからUnisonをコンパイルしてインストールすることをお勧めします。これにより、UbuntuがUnisonパッケージを更新することを決定した場合、予期しない問題を回避でき、以前に問題が発生した同じバージョンのOCamlでそのパッケージがすべてコンパイルされたことを確認できます。
Raspberry Piでは、ネイティブコードではなくバイトコードでコンパイルする必要があるかもしれないことに注意することも重要です。Native=false
Makefileで設定できます。私を見てここに答えてくださいより多くの情報を知りたいです。
答え3
答え4
Unixシステム(Debian Jessie)を2.40.102 Unisonバージョン(apt-getの公式の安定パッケージバージョンからインストールされている)と最新の2.48.15バージョンのmacOSシステムと同期する際にも同じ問題が発生しました。
最善の解決策は、UnisonのmacOSバージョンを2.40にダウングレードすることです。バイナリはここにあります:
macOS Intel用Union 2.40.61(GUI)
そして、Unisonメニュー>コマンドラインツールのインストールからコマンドラインをインストールすることを忘れないでください。
同期すると警告が置き換えられます。
Unison[16276:318574] Calling nonGuiStartup
Fatal error: Received unexpected header from the server:
expected "Unison 2.40\n" but received "Unison 2.48\n\000\000\000\000\017",
which differs at "Unison 2.48".
通過:
Unison[18574:332371] Calling nonGuiStartup
Connected [//SERVER.IP//Users/USer/Desktop/Unison -> //localhost//home/user/test]
Looking for changes Warning: No archive files were found for these roots…
注:私はmacOS Sierra 10.12.4を使用しており、Unison 2.40.61が正常に動作しているようです。