Download a tarball from https://github.com/jonas/tig/releases or clone the Tig repository https://github.com/jonas/tig.git.
Note: Do not use the tar.gz file for version 2.0 because it will fail to compile due to issue #283 and #337
The quick and simple way to install Tig is:
$ make $ make install
By default, tig
is installed in $HOME/bin
. To install tig
elsewhere set
prefix
to the desired path:
$ make prefix=/usr/local $ sudo make install prefix=/usr/local
Additional build options can be defined in the config.make
file, which is
loaded automatically when running make
if it exists. By default,
contrib/config.make-$kernel_name
is loaded if it exists (currently
available for Linux, macOS [Darwin
] and Cygwin but Linux users should
prefer the configure
script). See contrib/config.make
for example build
options.
Documentation files, such as manpages, are distributed in the release tarballs, and can be installed using:
$ make install-doc
When installing directly from the Tig repository, make install-doc
will assume
that the documentation tool chain is available and build the documentation
locally. In case you do not wish to install the required tools, documentation
can be installed from the release branch using:
$ make install-release-doc
Before upgrading, you are advised to read the release notes.
If you prefer an autotools-based installation process, you can use the
configure
script to detect dependencies and enable features. If you downloaded
the Tig sources from a release tarball
there’s already a configure
script. However, if you are building from the Tig
repository, you need to ensure that autoconf
is installed on your system and
generate the configure
script yourself.
To install using configure
, run the following commands:
$ make configure # Only run if you are building from the Git repository $ ./configure $ make $ make install
If your iconv
library is not in the default library and include path, you need
to pass the --with-libiconv
option to configure
to tell it where to look.
If you have installed ncurses with brew, run configure with the following
flags to have it properly detected (note this done out of the box if you
build without configure
):
$ ./configure LDFLAGS=-L/usr/local/opt/ncurses/lib CPPFLAGS=-I/usr/local/opt/ncurses/include
You can use Homebrew to install Tig on macOS and Linux:
$ brew install tig
Note, for older installations of Tig, Homebrew does not automatically
update the system-wide tigrc
file when upgrading Tig and the
behavior
was changed in 2015 to install the system-wide tigrc
in the
/usr/local/share/tig/examples
directory so Tig always uses the
defaults compiled into the binary.
If you see warnings when starting Tig after upgrading, e.g.:
tig warning: Errors while loading /usr/local/etc/tigrc
It means you either need to manually update /usr/local/etc/tigrc
with
changes from /usr/local/share/tig/examples
rename the file if you
never made any changes to it.
$ mv /usr/local/etc/tigrc{,.old}
You can use Nix to install Tig on NixOS, or any Linux/macOS distribution with Nix installed:
$ nix-env -i tig
Depending on your distribution, you may be able to use one of the following commands to install Tig on Linux:
$ apt-get install tig (Debian, Ubuntu) $ dnf install tig (Fedora) $ pacman -S tig (Arch Linux) $ apk add tig (Alpine)
You can use pkg to install Tig on FreeBSD:
$ pkg install tig
Easiest way is to install Git-for-Windows. As
of version 2.14.2
, it comes bundled with tig
.
Alternatively, you can also use it by installing cygwin.
You must then install the packages git
, gcc-core
, make
, libiconv-devel
and libncurses-devel
. Extract the tarball and install by using configure
as explained above.
If you want to install from the sources, then you will also need the automake
package (which will also install autoconf
). Then run make configure
and install
by using configure
as explained above.
Build settings are read from the file config.make
and for certain systems also
from contrib/config.make-$kernel
. An example of the latter is macOS, where
contrib/config.make-Darwin
provides out-of-the-box configuration for using the
system ncurses library and linking with the iconv library. This makes it easy to
configure the build without having to use the configure
script. As a side
note, configure
itself generates a config.make
file.
Apart from the different standard make
build variables (CC
, CFLAGS
, etc.)
and standard configure
variables (prefix
, bindir
, etc.), build settings
can be one of the following flags:
-
NO_SETENV
: Define this variable to enable work-around for missingsetenv()
. -
NO_MKSTEMPS
: Define this variable to enable work-around for missingmkstemps()
. -
NO_WORDEXP
: Define this variable to enable work-around for missingwordexp()
. -
NO_BUILTIN_TIGRC
: Reduce the size of the binary by not including a built-in tigrc. The built-in tigrc is used as a fallback when notigrc
is found in the system configuration directory (e.g./etc
). -
TIG_USER_CONFIG
: Allow to customize thetigrc
path (default~/.tigrc
).
The following example config.make
manually configures Tig to use the ncurses
library with wide character support and include the proper ncurses header file
(see tig.h for more information):
LDLIBS = -lncursesw CPPFLAGS = -DHAVE_NCURSESW_CURSES_H
For more examples of build settings, see contrib/config.make
and
config.make.in
.
The following tools and packages are needed:
Tool | Description |
---|---|
git-core |
Tig is just a frontend for Git. |
ncurses or ncursesw |
Be sure to have the development files
installed. Usually they are available in a
separate package ending with Ncurses with wide character support (ncursesw) is required to properly handle UTF-8 encoded strings. Note for packagers: For Tig’s |
iconv |
If iconv is not provided by the c library you need to change the Makefile to link it into the binary. |
The following tools and packages are optional and mainly needed for creating the configure script and building documentation:
Tool | Description |
---|---|
readline |
Adds support for completion and history in search and command prompts. |
PCRE |
Adds support for Perl Compatible Regular Expressions in searches. |
autoconf |
Contains autoreconf for generating configure from configure.ac. |
asciidoc (>= 8.4) |
Generates HTML and (DocBook) XML from text. |
xmlto |
Generates manpages and chunked HTML from XML. |
DocBook XSL (>= 1.72.0) |
Used by xmlto for building manpages. |
DocBook (DSSL/Jade) tools |
Generates PDF from XML. Also known as docbook-utils. |