Skip to content

Installation

Taylor Nekroze Lawson edited this page Nov 11, 2018 · 4 revisions

Dependencies

Dab uses a small POSIX compliant shell script that should run on any UNIX like operating system such as any linux. This script requires Docker as it quickly executes a container for the rest of Dab's execution. This means that you need not install any other dependencies than a running Docker daemon and this script as everything else is self contained in the Dab docker image.

Installation

The Dab wrapper script need only be downloaded to somewhere on your $PATH environment variable and made executable.

In this example we will install Dab for all users.

$ sudo curl https://raw.githubusercontent.com/Nekroze/dab/master/dab -o /usr/bin/dab
$ sudo chmod 755 /usr/bin/dab

Henceforth you can execute dab in any shell on this machine.

Updating

Dab has three distinct components that updated in various, mostly automatic, ways.

First there is the Dab wrapper script which you download to install. This script is designed to rarely need to be changed, however on the rare occasion it is necessary dab will alert you to this with a warning that the wrapper is out of date. To update the wrapper script simply repeat the same steps you used to install Dab.

The Dab docker image which you do not normally need to worry about as the next execution of the dab command after 24 hours it will update itself. The image itself will be updated automatically when the master branch of the Dab source code is updated or one of the base docker images it depends on gets updated, for example when there are security updates.

The final piece is the completion binary made available via the dab completion subcommand. This binary is automatically updated when next you run dab with an image containing a different version of it.

While there are more pieces than you might have hoped at first glance, everything that changes frequently is self updating at regular intervals, and the manually updated component is rarely changed. This leads to a rather smooth and always fresh experience without constant maintenance.

Clone this wiki locally