Tango Setup

This page documents how to install Tango on Ubuntu. These instructions have been tested on Ubuntu 13.10.

MySQL

First you have to install MySQL:

sudo apt-get install mysql-server mysql-client

During the installation of mysql, you can leave the root password empty. If you specify a password you will have to enter it later, while installing tango-db.

Tango

After installing MySQL you can install tango:

sudo apt-get install tango-common tango-db tango-starter tango-test python-pytango libtango8-doc libtango8-dev

If you are still using Ubuntu 13.04 you should use libtango7-* instead of libtango8-*.

During the installation of tango-common, enter pcname:10000 as TANGO host, where pcname is the name of your machine.

During the installation tango-db select:

  • Configure database for tango-db with dbconfig-common? [yes]
  • Password of the database’s administrative user: [leave empty]
  • MySQL application password for tango-db: [leave empty]

Next you have to install libtango-java. If this is not available in the repositories, you can add the launchpad repository manually:

sudo add-apt-repository 'deb http://ppa.launchpad.net/tango-controls/core/ubuntu precise main'
sudo apt-get update
sudo apt-get install libtango-java

If you get this warning during the sudo apt-get update:

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A8780D2D6B2E9D50

and/or this warning during the sudo apt-get install libtango-java:

WARNING: The following packages cannot be authenticated!
    libtango-java
Install these packages without verification [y/N]?

you can fix it by doing:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8780D2D6B2E9D50
sudo apt-key update
sudo apt-get update

Note

Currently the repository doesn’t have packages for quantal/raring/saucy, so it is necessary to specify precise even if you are running a more recent version. If you use sudo add-apt-repository ppa:tango-controls/core, your version of Ubuntu will be selected, and you will have to change it to precise manually.

You should now be able to lauch astor and jive from the terminal.

For more information see the Troubleshooting section below and this link: http://www.tango-controls.org/howtos/binary_deb

Troubleshooting

At the end of the installation, you should have two tango processes running:

$ ps aux | grep tango
tango    15451  1.0  0.1  71800  9820 ?        Sl   10:56   0:00 /usr/lib/tango/Starter pcname
tango    21109  0.0  0.1  94396 10752 ?        Sl   May18   0:20 /usr/lib/tango/DataBaseds 2 -ORBendPoint giop:tcp::10000

The first one is from tango-starter, the second one from tango-db.

If you don’t see them, you can try to reinstall these two packages, using:

sudo apt-get remove package-name
sudo apt-get install package-name

If you are reinstalling tango-db and/or if you get this error:

An error occurred while installing the database:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2)

you have to select <Yes> when asked “Deconfigure database for tango-db with dbconfig-common?”.

If you are still having problem you can try the following things:

  • check that /etc/tangorc contains TANGO_HOST=pcname:10000;

  • try to set the environment variable TANGO_HOST. You can also add the following line to your ~/.bashrc to make it automatic (you will have to restart bash):

    export TANGO_HOST=pcname:10000
    
  • try to (re)start tango-db and/or tango-starter manually using:

    sudo /etc/init.d/tango-db start
    sudo /etc/init.d/tango-starter start
    
  • if it still doesn’t work try completely removing the packages:

    sudo apt-get purge tango-db tango-starter
    
    • Deconfigure database for tango-db with dbconfig-common? [yes]
    • Do you want to purge the database for tango-db? [yes]
    • Password of the database’s administrative user: [leave empty]

    and then reinstalling them:

    sudo apt-get install tango-db tango-starter
    
    • Configure database for tango-db with dbconfig-common? [yes]
    • Password of the database’s administrative user: [leave empty]
    • MySQL application password for tango-db: [leave empty]

Fix for Ubuntu 13.04

If you are running on Ubuntu 13.04 you have to install this patch in order to avoid a Segmentation fault (core dumped) at every python server run. Install first libboost-python-dev:

sudo apt-get install libboost-python-dev

Download the patch from:

https://pypi.python.org/packages/source/P/PyTango/PyTango-7.2.4.tar.gz

untar and install it:

  • $ tar xzvf PyTango-7.2.4.tar.gz
  • $ cd PyTango-7.2.4
  • $ python setup.py build
  • $ sudo python setup.py install

Adding a new server in Tango

To register a new server run jive, select Edit -> Create Server and provide:

  • the executable name and the instance name (ex: legorcx/c1b8)
  • the Class name
  • the device name in the format: C3/subsystem/device

Then start the java/python/C++ application always providing the instance name, example:

python legorcx c1b8

and the Class properties will be automatically filled in the database