.. _install_install:

Installing the ThinLinc Remote Desktop Server
---------------------------------------------

Starting the Installation Program
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The installation program is located in the root directory of the Server
Bundle. Extract the bundle and start the installation program as
follows:

.. code:: console

   $ sh ./install-server

If you prefer, you can also install the ThinLinc package by hand. This
package is located in subdirectory :file:`packages` of the Server
Bundle.

After installing the software package, ThinLinc must be configured.
This is done by ThinLinc Setup, which is started by running
:program:`/opt/thinlinc/sbin/tl-setup`. If :program:`install-server` is
used, it will ask about starting ThinLinc Setup automatically at the end
of the package installation. ThinLinc Setup must be run on all ThinLinc
servers that make up the ThinLinc cluster. The role of the server in the
cluster can be specified at the start of ThinLinc Setup, it's a choice
between agent or master. Instructions for configuring newly installed
master and agent machines to create a cluster can be found in
:ref:`configuration_cluster`.

.. _install_automating_tlsetup:

Automating ThinLinc Setup
^^^^^^^^^^^^^^^^^^^^^^^^^

You can automate ThinLinc Setup by providing it with an answer file.
Begin by generating an answer template by running the following command.

.. code:: console

   $ /opt/thinlinc/sbin/tl-setup -g OUTPUT-FILE

A list of questions which ThinLinc Setup would ask is written to
:file:`{OUTPUT-FILE}` . Edit this file with suitable answers for your
system. The file uses the same Hiveconf syntax also used for the
ThinLinc configuration files, described in :ref:`hiveconf`. You can now
use the :option:`-a` option for ThinLinc Setup to make it read answers
from the given file.

.. code:: console

   $ /opt/thinlinc/sbin/tl-setup -a INPUT-FILE


.. _install_sudo_configuration:

Run ThinLinc administration commands using sudo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Once ThinLinc is installed, it is recommended to use :command:`sudo` when
running administration commands, instead of switching to root for long periods
of time. To run ThinLinc commands with :command:`sudo` and not have to specify
the entire path to the command, :command:`sudo` needs to be configured to trust
ThinLinc paths. This is achieved by editing :command:`sudo`’s
``secure_path`` in :file:`/etc/sudoers`. The sudoers file needs to be
edited using visudo:

.. code:: console

   $ sudo visudo

Add :file:`/opt/thinlinc/bin` and :file:`/opt/thinlinc/sbin` to ``secure_path`` and save the file.

.. admonition:: Example

   If this was in :file:`/etc/sudoers` before::

     Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

   Then after you add the ThinLinc paths it should be::

     Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/opt/thinlinc/bin:/opt/thinlinc/sbin
