Woob installation
=================

Using the packages provided by your distribution is recommended.
See http://woob.tech/install for a list of available packages.

Since there are many dependencies, when you install from sources,
you have to handle them by hand, according to your distribution.

The requirements are provided in ``setup.py``, except for:

* gpgv (for secure updates). If not packaged alone, it should be in ``gnupg`` or ``gpg``.
* For more performance, ensure you have ``libyaml`` and ``simplejson`` installed.

Some modules may have more dependencies.

After a package or system installation, you should run ``woob config update``
as your login user.

There are 2 versions of woob:

* stable: for end-users, only modules are updated on this version, not the core or apps
* master: for development, modules and core libs and apps are updated frequently

End-user installation (stable version)
--------------------------------------

No need to use the git repository in this case. Just

    $ pip install --user woob

This pip installation can be run within a virtualenv if desired (don't add ``--user``).

Then `woob-config update` can be run to fetch the list of available modules,
and the various woob commands (woob bank, woob video, etc.) can be run and are able
to install modules.

Developer installation (master version)
---------------------------------------

There is a way to install woob locally without messing with your system.

    $ pip install --user -e .

The scripts are copied to ``~/.local/bin``.

This pip installation can be run within a virtualenv if desired (don't add ``--user``).

Developer installation (master version, alternative)
----------------------------------------------------

There is a way to install woob locally without messing with your system.
Run ``./tools/local_install.sh`` as your local user. ::

    $ ./tools/local_install.sh ~/bin

The scripts are copied to ``~/bin``.

System installation (discouraged)
---------------------------------

The install mode copies files to the Python system-wide packages directory (for
example ``/usr/lib/python3.7/dist-packages`` for Python 3.7. ::

    # pip install --system .

Scripts are copied to ``/usr/bin``.

No installation mode (master version)
-------------------------------------

This does not actually install anything, but lets you run Woob from the
source code, while also using the modules from that source. This is only
recommended if using the git source and not a release. ::

    $ ./tools/local_run.sh APPLICATION COMMANDS

For example, instead of running ``woob video -b youtube search plop``, you would
run::

    $ ./tools/local_run.sh woob video -b youtube search plop

Bash completion
---------------

To enable bash completion, just source the ``tools/woob_bash_completion``
file from your ``~/.bashrc`` file.
