Installation¶
Dependencies¶
Kernel: Linux 3.9 or newer.
The psmisc utilities.
The development headers for SQLite, version 3.7.0 or newer.
Python 3.10 or newer, installed with development headers.
Additional Python dependencies are listed in
pyproject.toml(and your Python package installer should normally be able to install them automatically)
Installing from a source release¶
Download the release tarball s3ql-A.B.C.tar.gz and its detached signature
s3ql-A.B.C.tar.gz.sig from
GitHub and validate them with
signify:
signify -V -m s3ql-A.B.C.tar.gz -p s3ql-A.B.pub
The same public key is used for every bugfix release in the A.B series, so
the key file is named after the major.minor portion only (e.g. s3ql-6.1.pub
for any 6.1.x release).
You need to obtain s3ql-A.B.pub from a trustworthy source for the first
release you install. After that, the trust chain is self-sustaining: each
release tarball contains the public key for the next release in its
signify/ directory under the name s3ql-next.pub. After verifying the
tarball, extract that file and use it as -p for the following release.
After validating the tarball, unpack it and change into the newly created s3ql-X.Y.Z directory. At
this point, you can use any tool that can work with Python pyproject.toml files to install S3QL.
If you don’t know which one to use, pipx is a good choice. To install
S3QL with pipx, run
pipx install .
This will download all necessary Python dependencies and install S3QL in its own separate virtual environment.
For a minor performance boost, set the PYTHONOPTIMIZE environment variable before running S3QL commands
(perhaps by using a wrapper script). This disables the checking of debug assertions. Surprisingly,
there does not seem any way to do this automatically for a Python application (otherwise S3QL
would set this up by default).
Installing from Git / Developing S3QL¶
Clone the S3QL repository and take a look at developer_notes/setup.md.