elan is a small tool for managing your installations of the Lean theorem prover. It places lean
and leanpkg
binaries in your PATH
that automatically select and, if necessary, download the Lean version described in the lean_version
field of your project's leanpkg.toml
.
You can also install, select, run, and uninstall Lean versions manually using the commands of the elan
executable.
~/my/package $ cat leanpkg.toml | grep lean_version
lean_version = "nightly-2018-04-10"
~/my/package $ leanpkg -v
info: downloading component 'lean'
14.6 MiB / 14.6 MiB (100 %) 2.2 MiB/s ETA: 0 s
info: installing component 'lean'
Lean package manager, version nightly-2018-04-10
[...]
~/my/package $ elan show
installed toolchains
--------------------
stable
nightly-2018-04-06
nightly-2018-04-10
master
active toolchain
----------------
nightly-2018-04-10 (overridden by '/home/me/my/package/leanpkg.toml')
Lean (version 3.3.1, nightly-2018-04-10, commit d36b859c6579, Release)
Linux/OS X/Cygwin/MSYS2/git bash/...: Run the following command in a terminal:
curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh
Alternatively, any supported platform: Grab the latest release for your platform, unpack it, and run it in a terminal.
The installation will tell you where it will install elan to (~/.elan
by default), and also ask you about editing your shell config to extend PATH
. elan can be uninstalled via elan self uninstall
, which should revert these changes.
On some systems, lean
/leanpkg
will not work out of the box even if installed through elan:
- You'll need git to download dependencies through
leanpkg
. - macOS: Install Homebrew, then run
brew install gmp coreutils
. (gmp
is required bylean
,coreutils
is required byleanpkg
)
elan is basically a fork of rustup. Apart from new features and adaptions to the Lean infrastructure, these are the basic changes to the original code:
- Replaced every mention of
rustup
withelan
,cargo
withleanpkg
, andrust(c)
withlean
- Removed Windows installer... for now?
- Merged
CARGO_HOME
andRUSTUP_HOME
- Removed options to configure host triple