Installation¶
Embornal is one binary. It holds the memory, the wiki and the embedding model, so an installation adds one file and nothing more.
The installer¶
On Linux and macOS:
curl -LsSf https://github.com/tncardoso/embornal/releases/latest/download/embornal-installer.sh | sh
On Windows:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tncardoso/embornal/releases/latest/download/embornal-installer.ps1 | iex"
The installer reads the operating system and the processor, fetches the correct
archive, and writes the binary to ~/.local/bin. It then adds that directory
to the PATH of the shell. Open a new shell, or read the profile again, before
the first command:
A fixed version¶
Put the tag in the address of the installer:
curl -LsSf https://github.com/tncardoso/embornal/releases/download/v0.1.0/embornal-installer.sh | sh
Use this on a machine that must keep one version, and in a script that must give the same result at a later date.
What the installer obeys¶
| Variable | Effect |
|---|---|
EMBORNAL_INSTALL_DIR |
Writes the binary to this directory. |
EMBORNAL_NO_MODIFY_PATH=1 |
Leaves the profile of the shell as it is. |
EMBORNAL_DISABLE_UPDATE=1 |
Leaves out embornal-update. |
EMBORNAL_PRINT_QUIET=1 |
Writes nothing but an error. |
EMBORNAL_INSTALL_DIR=/usr/local/bin curl -LsSf https://github.com/tncardoso/embornal/releases/latest/download/embornal-installer.sh | sh
The flags --no-modify-path, --quiet and --verbose do the same as the
variables. To read them all:
curl -LsSf https://github.com/tncardoso/embornal/releases/latest/download/embornal-installer.sh | sh -s -- --help
The platforms¶
| System | Processor | Archive |
|---|---|---|
| Linux, glibc | x86-64 | embornal-x86_64-unknown-linux-gnu.tar.xz |
| Linux, glibc | ARM64 | embornal-aarch64-unknown-linux-gnu.tar.xz |
| macOS | Apple silicon | embornal-aarch64-apple-darwin.tar.xz |
| macOS | Intel | embornal-x86_64-apple-darwin.tar.xz |
| Windows | x86-64 | embornal-x86_64-pc-windows-msvc.zip |
There is no binary for musl, and thus none for Alpine Linux or for a
distroless image. Build it with Cargo on such a system.
With Cargo¶
This build compiles llama.cpp, so the machine needs cmake, a C++ compiler and libclang. On Debian and Ubuntu:
A machine with no C++ toolchain builds the memory without the model:
Such a build searches by keyword alone. See embeddings.
By hand¶
Each release holds the archives, one sha256 file for each archive, and one
sha256.sum file for all of them. To fetch and to prove one archive:
tag=v0.1.0
file=embornal-x86_64-unknown-linux-gnu.tar.xz
base=https://github.com/tncardoso/embornal/releases/download/$tag
curl -LO $base/$file
curl -LO $base/$file.sha256
sha256sum --check $file.sha256
tar -xf $file
sudo install embornal-x86_64-unknown-linux-gnu/embornal /usr/local/bin
The weights of the model¶
The binary holds the model but not its weights, which are near 330 MB. The
first command that searches by sense fetches them to $EMBORNAL_HOME/models,
and each later command reads the file that is already there.
To fetch them at a moment of your choice:
See embeddings for a memory that must ask the network nothing.
Update¶
The installer adds embornal-update next to the binary:
It reads the newest release, compares it with the version on this machine, and replaces the binary when the release is newer. To go to a version of your choice, run the installer again with that tag.
Remove¶
Delete the binary, the receipt of the installation, and the memory itself:
rm ~/.local/bin/embornal ~/.local/bin/embornal-update
rm -r ~/.config/embornal
rm -r ~/.local/share/embornal
rm -r ~/.cache/embornal
The third line deletes the facts. Keep ~/.local/share/embornal to install
Embornal again later with the memory that it had.
The installer also wrote one line in the profile of the shell, for example in
~/.bashrc or in ~/.zshenv. Delete that line if no other program uses
~/.local/bin.