How to install git-annex on Ubuntu 17.04

How to install Git-annex on Ubuntu 17.04

The Git-annex allows managing files with Git, without checking the file contents into Git. It aims to solve the problem of sharing and synchronizing collections of large files independent from a commercial service or even a central server. This tutorial explains the installation procedure of Git-annex on Ubuntu 17.04. 


Installation procedure

To start the installation process, add the required repo by executing the following command. 

root@linuxhelp1:~# 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
  packaged in this and related PPAs. End users and administrator are responsible for
  runtime licensing and possible legal consequences.
* Some packages provided with their dependencies while some might require additional
  Ubuntu repositories and external PPAs. Below is the list of
gpg: keybox '/tmp/tmp3mbvc_er/pubring.gpg' created
gpg: /tmp/tmp3mbvc_er/trustdb.gpg: trustdb created
gpg: key E61380B28313A596: public key "Launchpad synergy+" imported
gpg: Total number processed: 1
gpg:imported: 1

The repositories are added to the target system. Now update the repo by using the apt-get update command

root@linuxhelp1:~# apt-get update
Hit:1 zesty-security InRelease
Get:2 zesty InRelease [15.4 kB]
Hit:3 zesty InRelease
Hit:4 zesty-updates InRelease
Hit:5 zesty-backports InRelease
Get:6 zesty/main i386 Packages [3,924 B]
Get:7 zesty/main amd64 Packages [3,916 B]
Get:8 zesty/main Translation-en [3,140 B]
Fetched 26.3 kB in 1s (18.7 kB/s)
Reading package lists... Done

The target system is updated with the required repositories. Next, install the git-annex package and press y to continue with the installation process. 

root@linuxhelp1:~# apt-get install git-annex -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
aria2 git git-man git-remote-gcrypt libc-ares2 liberror-perl liblua5.2-0 libquvi-0.9-0.9.3 libquvi-scripts-0.9 lua-bitop
lua-expat lua-json lua-lpeg lua-socket nocache quvi
Suggested packages:
git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn xdot bup
tor magic-wormhole tahoe-lafs
The following NEW packages will be installed:
aria2 git git-annex git-man git-remote-gcrypt libc-ares2 liberror-perl liblua5.2-0 libquvi-0.9-0.9.3 libquvi-scripts-0.9
lua-bitop lua-expat lua-json lua-lpeg lua-socket nocache quvi
0 upgraded, 17 newly installed, 0 to remove and 55 not upgraded.
Need to get 15.6 MB of archives.
After this operation, 101 MB of additional disk space will be used.
Get:1 zesty/main amd64 liberror-perl all 0.17024-1 [23.0 kB]
Get:2 zesty/main amd64 git-man all 1:2.11.0-2 [768 kB]
Get:3 zesty/main amd64 git amd64 1:2.11.0-2 [2,981 kB]
Get:4 zesty/main amd64 liblua5.2-0 amd64 5.2.4-1.1build1 [108 kB]
Get:5 zesty/universe amd64 lua-bitop amd64 1.0.2-4 [6,780 B]
Get:6 zesty/universe amd64 lua-expat amd64 1.3.0-4 [12.8 kB]
Get:7 zesty/universe amd64 lua-lpeg amd64 1.0.0-1 [29.0 kB]
Get:8 zesty/universe amd64 lua-json all 1.3.3-2 [27.5 kB]
Get:9 zesty/universe amd64 lua-socket amd64 3.0~rc1+git+ac3201d-3 [71.1 kB]
Get:10 zesty/universe amd64 libquvi-scripts-0.9 all 0.9.20131130-1.1 [44.9 kB]
Get:11 zesty/universe amd64 libquvi-0.9-0.9.3 amd64 0.9.3-1.2 [42.5 kB]
Get:12 zesty/main amd64 libc-ares2 amd64 1.12.0-1 [37.0 kB]
Get:13 zesty/universe amd64 aria2 amd64 1.30.0-2 [1,233 kB]
Get:14 zesty/universe amd64 git-annex amd64 6.20170101-1 [10.2 MB]
Get:15 zesty/universe amd64 git-remote-gcrypt all 1.0.1-1 [12.4 kB]
Get:16 zesty/universe amd64 nocache amd64 1.0-1 [16.7 kB]
Get:17 zesty/universe amd64 quvi amd64 0.9.4-1.1 [61.2 kB]
Fetched 15.6 MB in 1min 25s (182 kB/s)
Selecting previously unselected package liberror-perl.
(Reading database ... 168833 files and directories currently installed.)
Preparing to unpack .../00-liberror-perl_0.17024-1_all.deb ...
Unpacking liberror-perl (0.17024-1) ...
Selecting previously unselected package git-man.
Preparing to unpack .../01-git-man_1%3a2.11.0-2_all.deb ...
Unpacking git-man (1:2.11.0-2) ...
Selecting previously unselected package git.
Preparing to unpack .../02-git_1%3a2.11.0-2_amd64.deb ...
Unpacking git (1:2.11.0-2) ...
Selecting previously unselected package liblua5.2-0:amd64.
Preparing to unpack .../03-liblua5.2-0_5.2.4-1.1build1_amd64.deb ...
Unpacking liblua5.2-0:amd64 (5.2.4-1.1build1) ...
Selecting previously unselected package lua-bitop:amd64.
Preparing to unpack .../04-lua-bitop_1.0.2-4_amd64.deb ...
Unpacking lua-bitop:amd64 (1.0.2-4) ...
Selecting previously unselected package lua-expat:amd64.
Preparing to unpack .../05-lua-expat_1.3.0-4_amd64.deb ...
Unpacking lua-expat:amd64 (1.3.0-4) ...
Selecting previously unselected package lua-lpeg:amd64.
Preparing to unpack .../06-lua-lpeg_1.0.0-1_amd64.deb ...
Unpacking lua-lpeg:amd64 (1.0.0-1) ...
Selecting previously unselected package lua-json.
Preparing to unpack .../07-lua-json_1.3.3-2_all.deb ...
Unpacking lua-json (1.3.3-2) ...
Selecting previously unselected package lua-socket:amd64.
Preparing to unpack .../08-lua-socket_3.0~rc1+git+ac3201d-3_amd64.deb ...
Unpacking lua-socket:amd64 (3.0~rc1+git+ac3201d-3) ...
Selecting previously unselected package libquvi-scripts-0.9.
Preparing to unpack .../09-libquvi-scripts-0.9_0.9.20131130-1.1_all.deb ...
Unpacking libquvi-scripts-0.9 (0.9.20131130-1.1) ...
Selecting previously unselected package libquvi-0.9-0.9.3:amd64.
Preparing to unpack .../10-libquvi-0.9-0.9.3_0.9.3-1.2_amd64.deb ...
Unpacking libquvi-0.9-0.9.3:amd64 (0.9.3-1.2) ...
Selecting previously unselected package libc-ares2:amd64.
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Processing triggers for man-db ( ...
Setting up liblua5.2-0:amd64 (5.2.4-1.1build1) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu5) ...
Processing triggers for hicolor-icon-theme (0.15-1) ...
Setting up lua-lpeg:amd64 (1.0.0-1) ...
Setting up libc-ares2:amd64 (1.12.0-1) ...
Setting up git (1:2.11.0-2) ...
Setting up git-annex (6.20170101-1) ...
Setting up git-remote-gcrypt (1.0.1-1) ...
Setting up lua-json (1.3.3-2) ...
Setting up aria2 (1.30.0-2) ...
Setting up libquvi-scripts-0.9 (0.9.20131130-1.1) ...
Setting up libquvi-0.9-0.9.3:amd64 (0.9.3-1.2) ...
Setting up quvi (0.9.4-1.1) ...
Processing triggers for libc-bin (2.24-9ubuntu2) ...

The application is installed successfully. For using the application, type the git-annex command in the terminal and press enter. A list of options will appear that can be used in git-annex. 

root@linuxhelp1:~# git-annex
Missing: COMMAND
Usage: git-annex COMMAND
git-annex - manage files with git, without checking their contents in

Commonly used commands:
addPATH ...add files to annex
addurlURL ...add urls to annex
assistantautomatically sync changes
copyPATH ...copy content of files to/from another repository
dropPATH ...remove content of files from repository
editPATH ...same as unlock
getPATH ...make content of annexed files available
helpCOMMANDdisplay help
importPATH ...move and add files from outside git working copy
importfeedURL ...import files from podcast feeds
lockPATH ...undo unlock command
mirrorPATH ...mirror content of files to/from another repository
movePATH ...move content of files to/from another repository
rmurlFILE URL ...record file is not available at url
statusPATH the working tree status
syncREMOTE ...synchronize local repository with remotes
undo PATH ...undo last change to a file or directory
unlockPATH ...unlock files for modification
watchwatch for changes and autocommit
webapplaunch webapp

Repository setup commands:
adjustenter adjusted branch
deadREMOTE ...hide a lost repository or key
describeREMOTE DESCchange description of a repository
directswitch repository to direct mode
enable-toruidenable tor hidden service
enableremoteNAME K=V ...enables git-annex to use a remote
groupREMOTE DESCadd a repository to a group
groupwantedGROUP EXPRget or set groupwanted expression
indirectswitch repository to indirect mode
initDESCinitialize git-annex
initremoteNAME K=V ...creates a special (non-git) remote
numcopiesNUMBERconfigure desired number of copies
p2pconfigure peer-2-peer links between repositories
requiredREMOTE EXPRget or set required content expression
scheduleREMOTE EXPRget or set scheduled jobs
semitrustREMOTE ...return repository to default trust level
trustREMOTE a repository
ungroupREMOTE DESCremove a repository from a group
untrustREMOTE not trust a repository
vicfgedit git-annex's configuration
wantedREMOTE EXPRget or set preferred content expression

Repository maintenance commands:
addunusedNUM|RANGE ...add back unused files
dropunusedNUM|RANGE ...drop unused file content
expireREMOTE:TIME ...expire inactive repositories
fixPATH ...fix up links to annexed content
forgetprune git-annex branch history
fsckPATH ...find and fix problems
mergeautomatically merge changes from remotes
remotedaemonpersistent communication with remotes
repairrecover broken git repository
unusedlook for unused file content
upgradeupgrade repository layout

Query commands:
findPATH ...lists available files
infoITEM ...showsinformation about the specified item or the repository as a whole
listPATH which remotes contain files
logPATH ...shows location log
mapgenerate map of repositories
versionshow version info
whereisPATH ...lists repositories that have file content

Metadata commands:
metadataPATH ...sets or gets metadata of a file
vaddFIELD=GLOB ...add subdirs to current view
vcycleswitch view to next layout
vfilterFIELD=VALUE ...filter current view
viewFIELD=VALUE ...enter a view branch
vpopNUMBERswitch back to previous view

Utility commands:
migratePATH ...switch data to different backend
reinitUUID|DESCinitialize repository, reusing old UUID
reinjectSRC DEST ...inject content of file back into annex
unannexPATH ...undo accidential add command
uninitPATH git-annex and clean out repository

Plumbing commands:
calckeyFILE ...calculates the key that would be used to refer to a file
checkpresentkey KEY REMOTEcheck if key is present in remote
contentlocation KEY ...looks up content for a key
diffdriver-- cmd --external git diff driver shim
dropkeyKEY ...drops annexed content for specified keys
examinekeyKEY ...prints information from a key
findrefREFlists files in a git ref
fromkeyKEY PATH ...adds a file using a specific key
lookupkeyFILE ...looks up key used for file
matchexpression EXPRchecks if a preferred content expression matches
pre-commitPATH by git pre-commit hook
proxy-- git commandsafely bypass direct mode guard
readpresentkey KEY UUIDread records of where key is present
registerurlKEY URLregisters an url for a key
rekeyPATH KEY ...change keys used for files
resolvemergeresolve merge conflicts
setkeyKEY PATHsets annexed content for a key
setpresentkeyKEY UUID [1|0]change records of where key is present
smudgeFILEgit smudge filter
transferkeyKEYtransfers a key from or to a remote
transferkeystransfers keys

To remove the git-annex application from the target system, execute the remove command and press y to continue with the uninstallation process. 

root@linuxhelp1:~# apt-get remove git-annex -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
aria2 git-remote-gcrypt libc-ares2 liblua5.2-0 libquvi-0.9-0.9.3 libquvi-scripts-0.9 lua-bitop lua-expat lua-json lua-lpeg
lua-socket nocache quvi
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
0 upgraded, 0 newly installed, 1 to remove and 55 not upgraded.
After this operation, 64.7 MB disk space will be freed.
(Reading database ... 170731 files and directories currently installed.)
Removing git-annex (6.20170101-1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.3+17.04.20170406-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for doc-base (0.10.7) ...
Processing 1 removed doc-base file...
Processing triggers for man-db ( ...
Processing triggers for gnome-menus (3.13.3-6ubuntu5) ...
Processing triggers for hicolor-icon-theme (0.15-1) ...

Wasn't that an easy installation procedure? Git-annex uses the Git to index files but does not store them in the git history. 

Thank you! for using Linux Help.

You find this tutorial helpful? Share with your friends to keep it alive.
For more help topics browse our website
Be the first to comment, we value your suggestions. For further queries please comment below.

Tags: Git Ubuntu
user image Author :  Isaiah