.. _installation:
Installation instructions
#########################
|project_program| is designed for Python **3** and does not work with Python 2.
.. note::
After installation, do not forget to enable and start |project| vis `systemd`_ as described in :ref:`systemd-integration`.
Requirements
************
The minimal requirements are.
* `Python 3`_ >= 3.7
* `psutil`_
* `portalocker`_
Additionally, the some checks need further dependencies to function properly.
Please refer to :ref:`available-checks` for individual requirements.
If checks using URLs to load data should support ``file://`` URLs, `requests-file`_ is needed.
Binary packages
***************
.. image:: https://repology.org/badge/vertical-allrepos/autosuspend.svg
:target: https://repology.org/project/autosuspend/versions
Debian
======
Installation from official package sources::
apt-get install autosuspend
Archlinux (AUR)
===============
|project| is available as an `Archlinux AUR package `_.
Installation via some `AUR helpers ` such as :program:`paru`::
paru -S autosuspend
Other AUR helpers may be used, too.
Gentoo
======
Patrick Holthaus has provided an ebuild for Gentoo in `his overlay `_.
You can use it as follows::
eselect repository enable pholthaus-overlay
emaint sync -r pholthaus-overlay
emerge sys-apps/autosuspend
Other distributions
===================
In case you want to generate a package for a different Linux distribution, I'd be glad to hear about that.
Manual installation
*******************
|project_program| is a usual Python_ package and hence can be installed using the common Python_ packaging tools.
Briefly, the following steps can be used to install |project_program| from source in a system-wide location (as ``root`` user):
.. code-block:: bash
python3 -m venv /opt/autosuspend
/opt/autosuspend/bin/pip install git+https://github.com/languitar/autosuspend.git@#egg=autosuspend[all]
.. note::
Replace the angle brackets with desired Git tag or branch.
Use ``main`` for the latest development release.
.. note::
The ``all`` in the square brackets ensures that |project_program| is installed with all optional dependencies.
That way all available checks can be used.
In case you only need a subset of optional requirements, replace ``all`` with a comma-separated list of package extras.
The names of these extras can be found in :file:`setup.py`.
Afterwards, copy the systemd_ unit files found in ``/opt/autosuspend/lib/systemd/system/`` to ``/etc/systemd`` and adapt the contained paths to the installation location.