Installation
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.
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
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 symbolsDCMAKE_INSTALL_PREFIX=/usr/local- Where to install whenmake installis 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
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.