How to install unison on Ubuntu 17.04

To install Unison on Ubuntu 17.04

Unison is an cross-platform, open-source file synchronization software that permits the users to store the copies of files and folders on two different hosts. When two files are merged with each other, the difference gets copied from one replica to another.  In case of updates,  Unison can deal with updates to both replicas of a distributed directory structure. Updates that do not conflict are propagated automatically, where else conflicting updates are detected and displayed. It is so simple to install Unison on Ubuntu 17.04 and in this article, you will be briefed about the method to install Unison on Ubuntu 17.04. 

 

Installing Unison

Before you begin with the installation, you need to add the necessary repository into your machine via ppa.

root@linuxhelp:~# add-apt-repository ppa:eugenesan/ppa
 This repository contains collection of customized, updated, ported and backported
packages for two last LTS releases and latest pre-LTS release.
Packages for older releases relocated to ppa:eugenesan/archive or deleted.

+-------------------------------------------------------------------------------------+
| Disclaimer:
+-------------------------------------------------------------------------------------+
* Packages in this a nd related PPAs are for personal use only.
  They developed specifically for several custom environments and may not work for you.
* Usage of packages in this PPA, in some forms, might contradict licenses of software

.
.
.
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keybox ' /tmp/tmpan0y9mo8/pubring.gpg'  created
gpg: /tmp/tmpan0y9mo8/trustdb.gpg: trustdb created
gpg: key E61380B28313A596: public key " Launchpad synergy+"  imported
gpg: Total number processed: 1
gpg:               imported: 1
OK

 

 

Once it is done, use the following command to update the newly added repository. 

root@linuxhelp:~# apt-get update
Hit:1 http://security.ubuntu.com/ubuntu zesty-security InRelease    
Hit:2 http://in.archive.ubuntu.com/ubuntu zesty InRelease                
Hit:3 http://in.archive.ubuntu.com/ubuntu zesty-updates InRelease        
Get:4 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty InRelease [15.4 kB]
Hit:5 http://in.archive.ubuntu.com/ubuntu zesty-backports InRelease            
Hit:6 http://ppa.launchpad.net/js-reynaud/kicad-4/ubuntu zesty InRelease       
Get:7 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main amd64 Packages [4,192 B]
Get:8 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main i386 Packages [4,192 B]
.
.
.
.
Get:8 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main i386 Packages [4,192 B]
Get:9 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main Translation-en [3,288 B]
Fetched 27.0 kB in 4s (6,278 B/s)                   
Reading package lists... Done

 

After updating the repositories, you can proceed with the installation of Unison by running the following command as it kick-starts the installation process. 

root@linuxhelp:~# apt-get install unison
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  unison-all
The following NEW packages will be installed:
  unison
0 upgraded, 1 newly installed, 0 to remove and 306 not upgraded.
Need to get 688 kB of archives.
After this operation, 2,345 kB of additional disk space will be used.
.
.
.
.
Setting up unison (2.48.3-1ubuntu1) ...
update-alternatives: using /usr/bin/unison-latest-stable to provide /usr/bin/unison (unison) in auto mode
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Processing triggers for man-db (2.7.6.1-2) ...

 

If you want to check all the options available with Unison, you need to run the following command.

root@linuxhelp:~# unison -help
Usage: unison [options]
    or unison root1 root2 [options]
    or unison profilename [options]

Basic options: 
 -auto              automatically accept default (nonconflicting) actions
 -batch             batch mode: ask no questions at all
 -doc xxx           show documentation (' -doc topics'  lists topics)
 -fat               use appropriate options for FAT filesystems
 -group             synchronize group attributes
 -ignore xxx        add a pattern to the ignore list
 -ignorenot xxx     add a pattern to the ignorenot list
 -nocreation xxx    prevent file creations on one replica
 -nodeletion xxx    prevent file deletions on one replica
 -noupdate xxx      prevent file updates and deletions on one replica
 -owner             synchronize owner
 -path xxx          path to synchronize
 -perms n           part of the permissions which is synchronized
 -root xxx          root of a replica (should be used exactly twice)
 -silent            print nothing except error messages
 -terse             suppress status messages
 -testserver        exit immediately after the connection to the server
 -times             synchronize modification times
 -version           print version and exit

Advanced options: 
 -addprefsto xxx    file to add new prefs to
 -addversionno      add version number to name of unison on server
 -backup xxx        add a pattern to the backup list
 -backupcurr xxx    add a pattern to the backupcurr list
 -backupcurrnot xxx add a pattern to the backupcurrnot list
 -backupdir xxx     directory for storing centralized backups
 -backuploc xxx     where backups are stored (' local'  or ' central' )
 -backupnot xxx     add a pattern to the backupnot list
 -backupprefix xxx  prefix for the names of backup files
 -backups           keep backup copies of all files (see also ' backup' )
 -backupsuffix xxx  a suffix to be added to names of backup files
 -clientHostName xxx set host name of client
 -confirmbigdel     ask about whole-replica (or path) deletes (default true)
 -confirmmerge      ask for confirmation before committing results of a merge
 -contactquietly    suppress the ' contacting server'  message during startup
 -copymax n         maximum number of simultaneous copyprog transfers
 -copyonconflict    keep copies of conflicting files
 -copyprog xxx      external program for copying large files
 -copyprogrest xxx  variant of copyprog for resuming partial transfers
 -copyquoterem xxx  add quotes to remote file name for copyprog (true/false/default)
 -copythreshold n   use copyprog on files bigger than this (if > =0, in Kb)
 -debug xxx         debug module xxx (' all'  ->  everything, ' verbose'  ->  more)
 -diff xxx          set command for showing differences between files
 -dontchmod         when set, never use the chmod system call
 -dumbtty           do not change terminal settings in text UI
 -fastcheck xxx     do fast update detection (true/false/default)
 -fastercheckUNSAFE skip computing fingerprints for new files (experts only!)
 -follow xxx        add a pattern to the follow list
 -force xxx         force changes from this replica to the other
 -forcepartial xxx  add a pattern to the forcepartial list
 -halfduplex        force half-duplex communication with the server
 -height n          height (in lines) of main window in graphical interface
 -host xxx          bind the socket to this host name in server socket mode
 -ignorearchives    ignore existing archive files
 -ignorecase xxx    identify upper/lowercase filenames (true/false/default)
 -ignoreinodenumbers ignore inode number changes when detecting updates
 -ignorelocks       ignore locks left over from previous run (dangerous!)
 -immutable xxx     add a pattern to the immutable list
 -immutablenot xxx  add a pattern to the immutablenot list
 -key xxx           define a keyboard shortcut for this profile (in some UIs)
 -killserver        kill server when done (even when using sockets)
 -label xxx         provide a descriptive string label for this profile
 -links xxx         allow the synchronization of symbolic links (true/false/default)
 -log               record actions in logfile (default true)
 -logfile xxx       logfile name
 -maxbackups n      number of backed up versions of a file
 -maxerrors n       maximum number of errors before a directory transfer is aborted
 -maxsizethreshold n prevent transfer of files bigger than this (if > =0, in Kb)
 -maxthreads n      maximum number of simultaneous file transfers
 -merge xxx         add a pattern to the merge list
 -mountpoint xxx    abort if this path does not exist
 -nocreationpartial xxx add a pattern to the nocreationpartial list
 -nodeletionpartial xxx add a pattern to the nodeletionpartial list
 -noupdatepartial xxx add a pattern to the noupdatepartial list
 -numericids        don' t map uid/gid values by user/group names
 -prefer xxx        choose this replica' s version for conflicting changes
 -preferpartial xxx add a pattern to the preferpartial list
 -repeat xxx        synchronize repeatedly (text interface only)
 -retry n           re-try failed synchronizations N times (text ui only)
 -rootalias xxx     register alias for canonical root names
 -rsrc xxx          synchronize resource forks (true/false/default)
 -rsync             activate the rsync transfer mode (default true)
 -selftest          run internal tests and exit
 -servercmd xxx     name of unison executable on remote server
 -showarchive       show ' true names'  (for rootalias) of roots and archive
 -socket xxx        act as a server on a socket
 -sortbysize        list changed files by size, not name
 -sortfirst xxx     add a pattern to the sortfirst list
 -sortlast xxx      add a pattern to the sortlast list
 -sortnewfirst      list new before changed files
 -sshargs xxx       other arguments (if any) for remote shell command
 -sshcmd xxx        path to the ssh executable
 -stream            use a streaming protocol for transferring file contents (default true)
 -ui xxx            select UI (' text'  or ' graphic' )  command-line only
 -unicode xxx       assume Unicode encoding in case insensitive mode
 -watch             when set, use a file watcher process to detect changes (default true)
 -xferbycopying     optimize transfers using local copies (default true)

 

 

You can also check the version of your Unison application with the help of following command.

root@linuxhelp:~# unison -version
unison version 2.48.3

With this, the installation of Unison comes to an end.

Tag : Ubuntu Unison
FAQ
Q
What language is used to write the Unison?
A
Here, Written in “Objective Caml” programming Language for Unison.
Q
What are the mail features of the Unison?
A
A good File Synchronizer is supposed to have below listed Features:



Cryptographic synchronization, as a security Implementation.

A good ratio of data compression.
Q
It is possible to enable the automatic sync?
A
Yes, But the Scheduled Synchronisation is available to sync the files.
Q
What algorithm is used in the Unison?
A
rsync algorithm is deployed here, only the modified part is transferred and overwritten. Hence. it’s fast in execution and Maintenance.
Q
Mention some of the alternatives for this tool ?
A
FreeFileSync, Resilio Sync, grsync