====== Unison ======
Logiciel de synchronisation de fichiers, doté également de fonctionnalités lui permettant de créer et gérer des sauvegardes de répertoires. La synchronisation est bidirectionnelle : les modifications de chacun des répertoires sont reportées sur l'autre, la modification la plus récente étant considérée comme la bonne. Il permet donc de garder à niveau des répertoires se trouvant en même temps sur deux machines différentes.
Unison est un logiciel libre sous licence GPL. Il fonctionne sur un large spectre de systèmes d'exploitation (Windows, Linux, Mac OS X), permettant ainsi de synchroniser des fichiers entre ordinateurs fonctionnant sous différents OS.
===== Installation =====
* Sous Ubuntu, Xubuntu, Kubuntu,...
* sudo apt-get install unison unison-gtk
* [[floss:config_ubuntu_server#generation_de_cles_ssh|Génération de clés SSH]]
==== Préférences Unison (profil) ====
Ces profils sont sauvegardés dans le répertoire caché ~/.unison, avec une dénomination de type synctest.prf. Ces fichiers contiennent les informations sur les répertoires à synchroniser (répertoire local et répertoire distant.
# Unison preferences
label = 1st-PC1-2nd-PC2-syncdir
root = /home/user/syncdir
root = ssh://user@ip_or_dns_name//home/user/syncdir
follow = Path *
sshargs = -C
Lors de l'exécution de l'interface graphique de Unison, une fenêtre de sélection permet de choisir un profil existant, et/ou d'en créer, voire modifier ou supprimer. Une fenêtre d'édition permet de créer les différents champs et de leur attribuer des valeurs, ce qui équivaut à éditer les fichiers correspondants de type .prf.
===== Unison et bug de Ubuntu 20.04 Focal Fossa =====
* [[https://askubuntu.com/questions/1234767/can-i-install-unison-for-ubuntu-18-04-lts-on-ubuntu-20-04-lts|sync - Can I install Unison for Ubuntu 18.04 LTS on Ubuntu 20.04 LTS? - Ask Ubuntu]]
* [[https://bugs.launchpad.net/ubuntu/+source/unison/+bug/1875475|Bug #1875475 “Unison from Ubuntu 20.04 is incompatible with Unis...” : Bugs : unison package : Ubuntu]]
* [[https://www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg5750379.html|[Bug 1568459] Re: unison incompatible with older ubuntu/debian versions]]
* Raspberry Ubuntu : [[https://www.raspberrypi.org/forums/viewtopic.php?t=157813]] ou snapd ??
Solution préconisée :
* purge :
* sudo apt-get remove --purge unison unison-gtk
* download Ubuntu 18.04 packages
* wget http://fr.archive.ubuntu.com/ubuntu/pool/universe/u/unison/unison_2.48.4-1ubuntu1_amd64.deb
* wget http://fr.archive.ubuntu.com/ubuntu/pool/universe/u/unison/unison-gtk_2.48.4-1ubuntu1_amd64.deb
* installation
* sudo dpkg -i unison_2.48.4-1ubuntu1_amd64.deb
* sudo dpkg -i unison-gtk_2.48.4-1ubuntu1_amd64.deb
* aptitude hold unison is mandatory... otherwise after a few days you get the 2.48.4-4 version back
* sudo apt-mark hold unison
* sudo apt-mark hold unison-gtk
* rmq d'un utilisateur : "It did not work completely until I removed the unison archives (ar... and fp... files) generated by the 2.48.4-4 version in ~/.unison" → en fait si il y a des erreurs entre les propriétés, il suffit de démarrer une fois le logiciel avec l'option d'ignorer les archives :
* unison-gtk -ignorearchives
* synchroniser la ou les archives
Autre solution :
* enlever Unison tel qu'installé
* passer par un "snap" Unison identique
* [[https://www.tecmint.com/install-snap-in-linux/|A Beginners Guide to Snaps in Linux – Part 1]]
* [[https://itsfoss.com/use-snap-packages-ubuntu-16-04/|Complete Guide for Using Snap Packages In Ubuntu and Other Linux Distributions]]
* les profils unison des snaps (unison-jz) sont dans le répertoire /home/username/snap/unison-jz/current/.unison → les deux versions d'unison (package et snap) peuvent coexister !
===== Références =====
* [[wp>fr:Unison_(logiciel)|Unison (logiciel) — Wikipédia]]
* [[https://github.com/bcpierce00/unison|GitHub - bcpierce00/unison: Unison file synchronizer]]
* [[https://www.cis.upenn.edu/~bcpierce/unison/|Unison File Synchronizer]]
* snap :
* [[https://snapcraft.io/unison-jz|unison-jz - Jacob Zimmermann (jz)]]
* Tutoriels
* [[https://doc.ubuntu-fr.org/unison|unison [Wiki ubuntu-fr]]]
* [[https://debian-facile.org/doc:reseau:unison|Unison / Wiki / Debian-facile]]
* [[https://www.tecmint.com/file-synchronization-in-linux-using-unison/|Unison - An Ultimate Local/Remote File Synchronization Tool for Linux]]
* [[https://documents.epfl.ch/users/m/ma/madasilv/public/LCBC_pictures/LCBC_retreat_slides/lcbc_retreat-repic-unison.html|unison-tutorial]]
* [[https://coagul.org/drupal/publication/synchronisation-dossiers-unison|Synchronisation de dossiers avec UNISON - COAGUL]]
* [[https://orgmode.org/worg/org-tutorials/unison-sync.html|Synchronizing org files with Unison]]
* [[https://help.ubuntu.com/community/Unison|Unison - Community Help Wiki]]
* [[https://www.digitalocean.com/community/tutorials/how-to-back-up-large-directories-with-unison-on-ubuntu-16-04|How To Back Up Large Directories with Unison on Ubuntu 16.04 - DigitalOcean]]
* [[https://www.linode.com/docs/tools-reference/tools/synchronize-files-with-unison/|Synchronize Files with Unison - Linode]]
* [[https://www.softprayog.in/tutorials/synchronizing-files-between-multiple-computers-using-unison|Synchronizing Files Between Multiple Computers Using Unison - SoftPrayog]]
* [[https://www.addictivetips.com/ubuntu-linux-tips/sync-files-on-linux-with-unison/|How To Sync Files On Linux With Unison]]
* [[https://wiki.archlinux.org/index.php/Unison|Unison - ArchWiki]]
* [[http://www.responsive-mind.fr/unison-synchronisation-fichiers/|Synchronisation de fichiers bidirectionnelle avec Unison]]
* [[https://www.cyberciti.biz/faq/unison-file-synchronizer-tool/|UNIX / Linux: HowTo Use unison File Synchronizer - nixCraft]]
* [[https://www.howtoforge.com/tutorial/unison-file-sync-between-two-servers-on-debian-jessie/#-running-unison|Setting up Unison File Synchronization between two Servers on Debian 8 (Jessie)]]
* [[https://kyup.com/tutorials/synchronize-files-unison/|How to synchronize files with Unison - Tutorials For Kyup.com]]
* [[http://blog.philippklaus.de/2010/02/synchronize-directories-using-unison/]]
* [[https://stackoverflow.com/search?page=1&tab=Relevance&q=unison|Posts containing ‘unison’ - Stack Overflow]]
* [[https://stackoverflow.com/questions/23309719/sync-remote-folder-with-unison|ssh - Sync remote folder with unison - Stack Overflow]]
* [[https://stackoverflow.com/questions/4504357/how-does-unison-decide-which-way-to-sync-a-file|synchronization - How does unison decide which way to sync a file - Stack Overflow]]
* [[https://stackoverflow.com/questions/31628930/sync-directories-containing-git-repository-with-unison|Sync directories containing git repository with unison - Stack Overflow]]
* [[https://stackoverflow.com/questions/54350263/unison-how-to-sync-specific-subfolders-in-several-directories|ubuntu - unison: how to sync specific subfolders in several directories? - Stack Overflow]]
* [[https://stackoverflow.com/questions/28870445/unison-preserve-directory-time|timestamp - Unison preserve directory time - Stack Overflow]]
* [[https://stackoverflow.com/questions/6533399/run-unison-in-bash-script|linux - run unison in bash script - Stack Overflow]]
* [[https://stackoverflow.com/questions/1602529/problems-scripting-unison-with-python|Problems scripting Unison with Python - Stack Overflow]]
* [[https://medium.com/trabe/sync-your-data-with-unison-3f28e96b05ff|Sync your data with Unison]] Martín Lamas, Medium, 06/05/2019
* Alternatives
* [[wp>File_synchronization|File synchronization]]
* [[wp>Comparison_of_file_synchronization_software|Comparison of file synchronization software]]
* [[wp>FreeFileSync]] - [[https://freefilesync.org/]]
* [[wp>Nextcloud]] : "While Nextcloud was originally a fork of the ownCloud project, there are now many differences. While ownCloud offers an open-source community edition, they also offer a proprietary Enterprise Edition with additional features and support subscriptions — Nextcloud instead uses the same public code base for both free and paid users."
* [[wp>ownCloud]] community edition
* [[wp>Rsync]]