web-dev-qa-db-ja.com

Ubuntu 16.04 xenialにUnison 2.40をインストールする方法(「致命的なエラー:予期しないヘッダーを受信しました」を解決するには)

私の他のコンピューターには、ユニゾンバージョン2.40.102(これは利用可能な最新バージョンです)があり、デスクトップubuntu 16.04 xenialにはユニゾンバージョン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".

さまざまなソースから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

私の質問は:

Xenialにバージョン2.40をインストールするにはどうすればよいですか?

5
kay_D

今日、私は同じ問題を抱えていました:raspbian(unison 2.40)と2つのクライアント(Ubuntu 14.04/unison 2.40およびUbuntu 16.04/unison 2.48)を備えたサーバー。

Raspbianのため、サーバー上で2.48に(簡単に)アップグレードできませんでした。しかし、Ubuntu 14.04からUbuntu 16.04に2.40-binariesをコピーするとうまくいきました:

ubu1604# cd /usr/bin; Sudo scp -p ubu1404:/usr/bin/unison-2.40.102* .

その後、unison-2.40.102 directを呼び出すか、リンク/etc/alternatives/unison*をそれぞれのバイナリに変更します。

編集:

2台目のマシンで14.04から16.04にアップグレードした後、再び問題が発生し、kay_Dのおかげで.debファイルの取得とインストールが役立ちました。

/ etc/alternativesのリンクのみを変更するだけでは十分ではありませんでした。これは、各.desktopファイルがユニゾンバイナリを直接呼び出すためです。そこで、/ usr/share/applications/unison-gtk.desktopを変更しました

Exec=unison-gtk

(時々、端末からではなくメニューからプログラムを呼び出すことを好みます)

2
ridgy

私はdebファイルを見つけました ここ 、これは信頼のためですが、とにかく動作し、64ビットバージョンをダウンロードして使用しました

Sudo dpkg --install ./unison-gtk_2.40.102-2ubuntu1_AMD64.deb

インストールする。 ridgyの回答に基づいて、unison-2.40-gtkを使用してRaspberryPisと同期するためにユニゾンを呼び出します

9
kay_D

実行しているUnisonのバージョンは同一である必要があります。これは、Unisonがものを追跡するために使用するアーカイブファイルの形式が 改善された 新しいバージョンごとに変更されました。

本当にXenialに2.40をインストールする場合は、 nisonのソース をダウンロードし、OCamlでコンパイルしてインストールしてください。

ただし、 他のコンピューターに新しいバージョンのUnisonをインストールすることをお勧めします

2
Mike Pierce