Installing a Package¶
elba can build and install the binary targets of packages into a global
directory (this directory is the bin
subfolder under the folder of
the global cache; under normal circumstances, this should be located at
~/.elba/bin
). In order for these executables to be run from
anywhere, you should this global bin folder to your PATH
.
Installing a local package¶
To install a package which is located on-disk, simply navigate to the directory of the package and whack:
$ elba install
Doing that should rebuild the package if needed and install its binaries into the global bin folder.
Note that if a binary with the same name as one of the binaries being
installed already exists, the above command will fail. If you’re
absolutely sure that you want to replace the old binary, run the command
again but with the --force
flag. Additionally, if you only want to
install certain binaries, you can use the --bin
flag:
$ elba install --bin yeet # only install the binary named "yeet"
Installing a package from an index¶
If one or more package indices is specified in elba’s
configuration, you also have the option of
installing a package from one of those indices. elba install
optionally takes a package spec as an argument, which consists of
three parts:
- The name of the package to install (required)
- The resolution of the package; for the time being, this must be the resolution of an index (see Resolutions)
- The version of the package
The following are examples of valid elba install
invocations:
$ # installs the latest version of `jsmith/one` from any index it can:
$ elba install "jsmith/one"
$ # installs version 1.0.0 of `jsmith/one` from any index it can:
$ elba install "jsmith/one|1.0.0"
$ # installs the latest version of `jsmith/one` from the index specified:
$ elba install "jsmith/one@index+tar+https://example.com/index.tar.gz"
$ # installs version 1.0.0 of `jsmith/one` from the index specified:
$ elba install "jsmith/one@index+tar+https://example.com/index.tar.gz|1.0.0"
As with installing a local package, if you want to replace any old
binaries in the global bin directory, use the --force
flag, and if
you want to choose which binaries to install, use the --bin
flag.
Note that if a spec can apply to multiple packages at the same time (i.e. a package index wasn’t specified and multiple package indices offer a package with the same name), elba will require you to provide more info to disambiguate between the packages.
Uninstalling a package¶
Uninstalling a package is much the same process as installing: just pass
a spec to the elba uninstall
invocation. Just like with
elba install
, if you specify an ambiguous spec, elba will require
you to qualify it further.