Unison(ソフトウェア)

ユニゾン
開発者ベンジャミン・ピアースと寄稿者
初回リリース1998年[ 1 ] (1998年
安定版リリース
2.53.8 [ 2 ] / 2025年11月5日 (5 November 2025)
リポジトリ
書かれたOCaml
オペレーティング·システムLinuxmacOSWindows
タイプ同期
ライセンスGPLv3
Webサイトgithub .com /bcpierce00 /unison

Unisonは、 WindowsおよびさまざまなUnix系システム(macOSおよびLinuxを含む)用のファイル同期ツールです。[ 3 ] Unisonを使用すると、ファイルとディレクトリのコレクションの2つのレプリカを異なるホスト(または同じホスト上の異なるディスク)に保存し、個別に変更した後、各レプリカの変更を他のレプリカに伝播することで最新の状態にすることができます。[ 4 ] [ 5 ] [ 6 ] [ 7 ]レプリカを直接同期する Unisonはサードパーティプロバイダーに依存しません。

特徴

Unisonの機能には、レプリケーションの両側におけるファイルの変更を処理する機能が含まれます。競合(両側で同じファイルが変更された場合)が表示され、手動で解決できます。また、変更されたファイルのバックアップを作成することもできます。Unisonは、コンピュータネットワーク(LAN、インターネット)への直接接続(ソケット)またはSSHトンネル経由の同期を可能にします。[ 8 ] rsyncアルゴリズムを使用することで、変更されたファイルブロックのみを転送する必要があるため、帯域幅を節約できます。

使用

Unisonは、コマンドラインからパラメータを指定して呼び出すことも、プロファイルファイルから制御することもできます。[ 9 ] [ 10 ]対話的に実行することも、バッチ制御で自動的に実行することもできます。バッチモードでは、一意の変更が自動的に同期されます。レプリケーションの競合があるファイルはスキップされます。

起動後、Unisonはディレクトリまたはコンピュータごとにファイルインベントリをチェックし、ファイルのタイムスタンプを比較します。変更が検出された場合は、対応するファイルへの変更内容がより詳細に分析されます。その後、Unisonは同期の提案を含むレプリケーションリストを作成し、自動的に解決できない競合をマークします。

GTK+ GUI

Unisonには、インタラクティブな使用のためのGUIバージョンがあります。WindowsとLinuxでは、一般的にGTK+ベースです。GUIバージョンでは、レプリカと提案された同期の概要をより簡単に確認できます。変更はキーボードまたはマウスで個別にマークし、まとめて適用できます。

利点と欠点、他のオープンソースソフトウェアとの比較

rsync と比較すると、Unison は完全に双方向であり、最後の同期以降にファイルの両方の複製が変更された場合に、ユーザーが競合を検出して調整することができます。

バージョン 2.52 より前のバージョンでは、両方のコンピュータで同じバージョンの Unison を実行し、同じバージョンのOCamlライブラリでコンパイルする必要があったため、ユーザーにとって頻繁に面倒なことがありました。[ 11 ]このため、別のオペレーティング システムやパッケージ システムを実行している 2 台目のマシンで、任意のバージョンのソフトウェアや任意のバージョンの OCaml ライブラリでコンパイルされたソフトウェアが必要な場合でも、Debian Linux の APT システムでは、任意のバージョンのソフトウェアをインストールできないという問題がありました。この問題はバージョン 2.52 で解決されました。クライアントとサーバーの両方で、少なくともバージョン 2.52 を実行していれば、異なるバージョンの OCaml でコンパイルされた異なるバージョンの Unison を実行できます。片側がバージョン 2.48 または 2.51 を実行している場合、もう片側は 2.52 以降の任意のバージョンを実行できますが、OCaml のバージョンは一致している必要があります。[ 12 ]

Unison はSyncthingとはいくつかの点で異なります。主な違いは、Syncthing が常時接続の自動同期用に設計されているのに対し、Unison はユーザーがトリガーして監視する同期用に設計されている点です。Syncthing はピアツーピアですが、Unison はピアツーピアではありません。

参照

参考文献

  1. ^ 「Unison Wiki | メイン / UnisonFAQGeneral」 . alliance.seas.upenn.edu .
  2. ^ https://github.com/bcpierce00/unison/releases/tag/v2.53.8{{cite web}}:欠落または空|title=(ヘルプ)
  3. ^ 「unison パッケージの分析 - Repology 。repology.org
  4. ^ピアス、ベンジャミン・C.、ジェローム・ヴイヨン。「Unison の中身は? ファイル同期装置の正式な仕様とリファレンス実装」技術レポート (CIS) (2004): 40. https://repository.upenn.edu/entities/publication/df9bb5bd-2f08-4333-89ee-198156a9cf1f
  5. ^ Uppoor, Sandesh, Michail D. Flouris, Angelos Bilas. 「クラウドベースの分散ファイルシステム階層の同期」2010 IEEE国際会議 クラスタコンピューティングワークショップおよびポスター(クラスタワークショップ). IEEE, 2010. https://ieeexplore.ieee.org/abstract/document/5613087
  6. ^ Diehl, Mike (2008年4月14日). 「Unisonによるファイル同期 | Linux Journal」 . Linux Journal .
  7. ^ 「Unisonを使ってネットワーク経由でLinuxマシン上のファイルを同期する方法」 TechRepublic 2020年10月29日
  8. ^ Hein, Werner. 「In Sync » Linux Magazine」 . Linux Magazine .
  9. ^ Erik Inge Bolso (2005年3月1日). 「Unisonによるファイル同期 | Linux Journal」 . Linux Journal .
  10. ^ Byfield, Bruce. 「コマンドライン – unison » Linux Magazine」 . Linux Magazine .
  11. ^ “Unison-docker” . GitHub . 2022年6月3日.
  12. ^ 「2.52移行ガイド」 . GitHub . 2022年2月25日.