Skip to main content
Version: 5.10.1

Installation

tip

Looking to build the source? Head over to https://github.com/leil-io/leilfs/ and check the README below, or see the section on building from source down below.

We provide pre-built packages for Ubuntu and Rocky Linux, but you can always compile from source (see below).

Current supported Ubuntu versions are:

  • 22.04
  • 24.04

Current supported Rocky Linux versions are:

  • 8
  • 9
  • 10

Ubuntu

First check that you have GPG setup correctly. You can use this command:

gpg2 --list-keys

This will make sure that the .gnupg exists in your home directory, creating it if it doesn't exist.

Import the public key used to sign the packages

gpg --no-default-keyring \
--keyring /usr/share/keyrings/saunafs-archive-keyring.gpg \
--keyserver hkps://keyserver.ubuntu.com \
--receive-keys 0xA80B96E2C79457D4

It will create a new keyring file /usr/share/keyrings/saunafs-archive-keyring.gpg and import the public key used to sign the packages.

note

At the time of writing, the use of apt-key is deprecated.

You can verify the keyring file by running the following command:

gpg --no-default-keyring \
--keyring /usr/share/keyrings/saunafs-archive-keyring.gpg \
--list-keys

Next, add our Debian/Ubuntu repository to the apt sources. Make sure that the program lsb_release is installed.

Ubuntu 24.04:

sudo tee /etc/apt/sources.list.d/saunafs.list <<EOF
deb [arch=amd64 signed-by=/usr/share/keyrings/saunafs-archive-keyring.gpg] https://repo.leil.io/repository/saunafs-ubuntu-24.04/ noble main
EOF

Ubuntu 22.04:

sudo tee /etc/apt/sources.list.d/saunafs.list <<EOF
deb [arch=amd64 signed-by=/usr/share/keyrings/saunafs-archive-keyring.gpg] https://repo.leil.io/repository/saunafs-ubuntu-22.04/ jammy main
EOF
Hint

For some version of apt using Sub-process /usr/bin/sqv ASCII format of keyring is required. Please use this command to generate it:

gpg --no-default-keyring --keyring /usr/share/keyrings/saunafs-archive-keyring.gpg --export --armor > /usr/share/keyrings/saunafs-archive-keyring.asc

and use /usr/share/keyrings/saunafs-archive-keyring.asc as [arch=amd64 signed-by=/usr/share/keyrings/saunafs-archive-keyring.asc] in /etc/apt/sources.list.d/saunafs.list file.

Update the package list

sudo apt update

These packages are available on the Debian/Ubuntu repository:

  • saunafs-master – Master server
  • saunafs-chunkserver – Chunkserver
  • saunafs-client – Client (sfsmount)
  • saunafs-adm – Administration tools saunafs-admin
  • saunafs-cgi – LeilFS CGI Monitor (deprecated)
  • saunafs-cgiserv – Simple CGI-capable HTTP server to run LeilFS CGI Monitor (deprecated)
  • saunafs-metalogger – Metalogger server
  • saunafs-common – LeilFS shared library, required by saunafs-master, saunafs-chunkserver and saunafs-metalogger
  • saunafs-dbg – Debugging symbols for all the LeilFS binaries
  • saunafs-uraft - High Availability solution based on RAFT algorithm (from version 3.13)

Rocky Linux

The following instructions cover installing the saunafs-client package on Rocky Linux 8, 9 and 10.

Optionally, enable the EPEL repository. It is not required by saunafs-client itself, but it provides some commonly useful dependencies:

sudo dnf install -y epel-release

Add our Rocky Linux repository. The $releasever variable is expanded by DNF to your Rocky Linux major version (8, 9 or 10), so the same configuration works on all supported versions. The package signing key is imported automatically from the gpgkey URL on first install:

sudo tee /etc/yum.repos.d/saunafs.repo <<'EOF'
[saunafs]
name=SaunaFS Repository
baseurl=https://repo.leil.io/repository/rocky-linux-$releasever
enabled=1
gpgcheck=1
gpgkey=https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA80B96E2C79457D4
EOF

Install the client:

sudo dnf install -y saunafs-client

Unlike the Debian/Ubuntu repository, the Rocky Linux repository currently provides only the client packages:

  • saunafs-client – Client (sfsmount)
  • saunafs-client-debuginfo – Debugging symbols for the client

You can confirm what is available with:

dnf list available "saunafs-*"

Updating an existing installation

Refresh the repository metadata and upgrade the package:

sudo dnf clean all
sudo dnf makecache --refresh
sudo dnf upgrade saunafs-client

To reinstall a package (pulling fresh metadata):

sudo dnf reinstall saunafs-client --refresh

To list the files installed by a package:

rpm -ql saunafs-client

Source installation

Obtain the source

git clone https://github.com/leil-io/leilfs.git

Go into the leilfs directory and create a build directory

cd leilfs
mkdir build

LeilFS uses CMake as its build system. For a complete list of options check the developer's guide for building, but these are the three most important options for installing:

  • DCMAKE_BUILD_TYPE=RelWithDebInfo - Build for release with debug symbols
  • DCMAKE_INSTALL_PREFIX=/usr/local - Where to install when make install is called (default is /usr/local)
  • DENABLE_DOCS=ON - Build man docs

You might use the below commands to build LeilFS:

cmake -B ./build \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr/local
-G 'Unix Makefiles' \
-DENABLE_DOCS=ON \
-DENABLE_CLIENT_LIB=ON \
-DENABLE_TESTS=ON \
-DENABLE_WERROR=ON

nice make -C ./build -j$(nproc)

Finally call make install:

sudo make install
note

When building from source using this method, the version will default to 4.0.0-devel. This default value is intended to avoid backward compatibility issues and to easily tag artifacts that are not officially built by our CI.