Get Started

This document gives a brief introduction to installing Hermit and using a newly created environment.

Installing Hermit

Installing Hermit is straightforward:

curl -fsSL https://github.com/cashapp/hermit/releases/download/stable/install.sh | /bin/bash

This will download and install hermit into ~/bin. You should add this to your $PATH if it isn't already.

Also consider installing the shell hooks to get automatic environment activation/deactivation when changing directories.

Initialising a Project

Change into a project directory and run the following:

~$ cd ~/project
~/project$ hermit init
info: Creating new Hermit environment in /home/user/project
...

At this point the Hermit environment should be initialised and the ./bin directory should contain something like the following:

README.hermit.md
activate-hermit
hermit
hermit.hcl

Activating an Environment

Activating an environment will add its bin directory to your $PATH, as well as setting any environment variables managed by Hermit.

To activate a Hermit environment source the activate-hermit script:

~/project$ . ./bin/activate-hermit
Hermit environment /home/user/project activated
project🐚~/project$

Once activated the shell prompt will change to include the prefix <environment>🐚.

At this point you can use and manage packages in this environment.

Searching for packages

Once your environment is activated, use hermit search to search for packages. Without arguments it will list all known packages, or you may pass a term to search in package names and descriptions.

project🐚~/project$ hermit search openjdk
openjdk (11.0.11_9-zulu11.48.21, @stable, @zulu, 11.0.8_10, 11.0.9_11, 11.0.10_9)
  Java is a class-based, object-oriented programming language.

Installing a package

After you've selected the package you'd like to install into your environment, use hermit install to install packages:

project🐚~/project$ hermit install go-1.16.3
project🐚~/project$ go version
go version go1.16.3 darwin/amd64

Refer to the package management documentation for more details, including how to uninstall, information about channels, etc.

Deactivating an Environment

When an environment is activated, Hermit inserts a shell function deactivate-hermit. Call this to deactivate the current environment.

project🐚~/project$ deactivate-hermit
Hermit environment /home/user/project deactivated
~/project$