Unisonとバージョン/コンパイラの競合

Unisonとバージョン/コンパイラの競合

2台のコンピュータがあります。 1つはUbuntu 18.04を実行し、もう1つはUbuntu 20.04を実行します。 Unisonを使用してファイルを同期したいのですが、いくつかの問題があります。まず、他のコンピュータと同期しているので、ソースUnison 2.48.3でコンパイルしました。その後、Ubuntu 18.04では、Ubuntu Software Unison 2.48.4からUbuntu 20.04をインストールしました。正しく設定した後、Ubuntu 18.04のコマンドラインから実行して unison-2.48.4-gtk 同期しようとしました。すべてがうまくいきますが、つまりシステムとディレクトリが見つかりましたが、次のメッセージが表示されます Fatal error during unmarshaling (input value:ill-formed message) possibly because client and serer have been compiled with different versions of OCaml compiler。 20.04でOCamlのバージョンを確認しましたが、明らかに何も返しませんでした(アプリストアからunisonをインストールしたにもかかわらず)。 18.04のバージョンは4.05.0です。私ができることについてのアイデアはありますか?

ベストアンサー1

複数のコンピュータを異なるオペレーティングシステムと同期させる必要があるときにUnisonおよび/またはOCamlが何かを変更するたびにソースからコンパイルしたくない場合は、きれいな解決策があります。しなければならない常にUnisonをすばやく操作してインストールします。これにより、すべてのLinuxシステム、クライアント、およびサーバーで、まったく同じバージョンのUnison / OCamlを持つことになります。これがスナップショットの目的です。同じスナップショットは、インストールされているオペレーティングシステムに関係なく、まったく同じように見えるはずです。この場合、ソフトウェアセンターでunison-jzを使用できます。 OCaml 4.02.3用にコンパイルされたUnison 2.51.2をインストールします。

Ubuntuのようにsnapdがすでにインストールされている場合は、次のように実行します。

sudo snap install unison-jz

ホームディレクトリ外のコンテンツを同期するには、必要な権限を処理するために開発者モードでunison-jzをインストールする必要があります。この場合、端末で使用する必要がある行は次のとおりです。

sudo snap install --devmode unison-jz

Unisonのスナップショットバージョンが正しく機能するには、2つのことをさらに実行する必要があります。人々は:

  1. ファイルの同期に使用する Unison 構成ファイルを生成したら、テキストエディタを使用して次の行を追加します。

     servercmd = /snap/bin/unison-jz.unison -ui text
    

    ~/snap/unison-jz/current/.unison/にある設定ファイルに

    すべての設定ファイルは.prf拡張子を使用します。

    このようにして、クライアントシステムのunisonは、同じUnison / OCamlバージョンを持つサーバーでsnap'dバージョン(unison-jz)を呼び出します。

  2. 明らかに、unison-jzに含まれているsshバージョンはssh設定ファイルの「include」という用語を理解していないため、見つかった場合はエラーが発生します。そのため、/etc/ssh/ssh_config ファイルを編集する必要があるかもしれません。

    目的のテキストエディタを使用して管理者権限で開きます。例えば

     sudo nano /etc/ssh/ssh_config
    

    以下のように19行をコメントアウトします。

     Include /etc/ssh/ssh_config.d/*.conf
    

    それはこんな感じ

     #Include /etc/ssh/ssh_config.d/*.conf
    

以前のバージョンのUbuntuで新しいバージョンのOCamlまたはUnisonをコンパイルしようとすると、依存関係の問題のためにソースからビルドすることは不可能であるため、これがこの状況を処理するより簡単な方法だと思います。

追加情報:

http://www.xente.mundo-r.com/zasjls/other/20/unison_en.html

おすすめ記事