Installation

Prerequisites

You need to have Python 3.6 or later installed.

You need pip and setuptools (if not already included in your Python installation). Installing Python’s package installation program pip will also install setuptools.

Your system might well have both Python 2.7 and Python 3.X installed, for that reason it is best to always use the commands python3 and pip3 (as opposed to python and pip, which could refer to 2 or 3 depending on circumstances).

See also https://packaging.python.org/tutorials/installing-packages/.

Installing from PyPi

Assuming you are using Python 3, run the following command:

[sudo] python3 -m pip install igor-iot

Depending on your system installation you may be able to run it without sudo, but even if this gives no permission errors it may actually still install in your home directory in stead of in the system directories, which may cause problems later if you want to run Igor as a system daemon. But, to make matters more complicated, some times it is better to run without sudo, for example when installing on MacOS with a brew installed Python. Sorry, you have to find out yourself what works best…

Note that installing with --user or installing in a virtualenv has not been tested, at least not extensively.

After installing the software you can continue with Initial setup.

Installing from source

Alternatively you can build Igor from source. Download the source via https://github.com/cwi-dis/igor.

git clone https://github.com/cwi-dis/igor

Then change into the igor directory, and install with

[sudo] python3 -m pip install .

This will allow uninstalling as well, so it is the preferred method of installation. You can also supply the --editable flag if you know what you are doing.

Side note: If you really want you can also install with setuptools, but this is not recommended:

[sudo] pip3 install -r requirements.txt
python3 setup.py build
[sudo] python3 setup.py install

This installs the main binary igorServer and the utilties igorVar, igorSetup, igorControl and igorCA.

These instructions should install Igor and the required dependencies for all users on your system. Installing for the current user only may be possible but is untested.

You may also want to install some of the helper utilities from the helpers subdirectory.

Testing the software (optional)

There is a unittest-based test suite in the test subdirectory. The easiest way to run the tests is to first install the software (as per the instructions above) and then run

python3 setup.py test

This will run all tests in various configurations (with and without https support, with and without capability support, etc). This will run the tests in complete isolation, using a separate temporary install and separate Igor instances running on different ports, etc. So it will not interfere with your installed igor.

If you want more control (for example to specify test options and such) you can in stead use the following command line (which will use the Igor version installed on your system):

python3 -m test.test_igor

It is also possible to test the performance of Igor (again with the various configurations):

python3 -m test.perf_igor

will run a set of actions similar to the unittests (for a minimum number of calls and a minimum duration) and report number of calls, average runtime per call and standard deviation of the runtimes.

Updating the software

Note: currently the database format (particularly the schema) may change between releases. You should check the release notes to ensure your database is still compatible, and otherwise convert it manually after updating.

Stop the server if necessary:

igorControl -u http://localhost:9333 stop

In the igor directory, do

git pull

and repeat the installation step steps from earlier. Either

[sudo] python3 -m pip install .

or

[sudo] pip3 install -r requirements.txt
python3 setup.py build
[sudo] python3 setup.py install

Restart the server:

igorServer