Dependencies

Cjr works by making calls to Docker or Podman. Before installing cjr you will need to make sure that you have the following software installed on your machine:

Mac:

  1. Docker desktop.
  2. git.
  3. rsync (version 3.1.3 or above)
  4. xQuartz (if you want to use graphical applications in containers)

Note: OSX ships with a 12 year old version of rsync that needs to be updated if you want to use cjr for running remote jobs. The simplest way to update rsync is by installing brew and running the command brew install rsync.

Linux:

  1. Podman or Docker.
  2. git.
  3. rsync, ssh.
  4. If you are running a minimal distro, then make sure that the following system commands are present: mktemp, mkdir, echo, ls, zip, tar.

Note: If you install Docker on linux, then make sure that your current linux user is added to the group “docker” otherwise you will need to run all cjr commands using sudo. For more details see the official docker post installation instructions. Podman is a great alternative to Docker that allows for rootless containers.

Windows:

Not currently supported.

Installation

  1. Download the latest binary from the official releases, then untar the file and store it in a permanent location of your choice.
  2. The executable binary for cjr is located in the directory cjr/bin/cjr. Create a symbolic link that points to the binary and is located in your $PATH.
    • Run the command echo $PATH to see which directories are in your path.
    • To create a symbolic link use the command
      ln -s /path/to/cjr/bin/cjr /directory/in/path/cjr
      For example, if cjr is in /home/user and your path contains /usr/bin/, then run
      ln -s /home/user/cjr/bin/cjr /usr/bin/cjr

You should now be able to run the command

$ cjr --version
cjr/0.4.1 darwin-x64 node-v12.16.1

TIP: before trying cjr, make sure you have a basic idea of how to a terminal and commands like cd, ls, pwd.

SELinux (linux only)

If SELinux is enabled on your computer, then you must also run the command

$ cjr config:set --selinux=true

If you forget to run this command and have selinux enabaled, then you will run into file permissson errors when you try to access local files using cjr.

© 2020