Latest Ubuntu/Debian/RaspberryPi Packages - MdsWiki
Navigation
Personal tools

From MdsWiki

Jump to: navigation, search

MDSplus now provides a debian repository for Ubuntu and Debian linux distributions. This will enable you to subscribe to automatic updates as they are released. The MDSplus packaging has also been changed significantly. You can pick and choose which features of MDSplus you want to install on your linux system. Go back to downloads page.

Contents

Release Levels

There are currently 2 different release levels of MDSplus:

Release Level Description
alpha Updates occur whenever a change to an MDSplus source module.
Reflects the HEAD of the Git Repository.
stable Updates occur less frequently.
New features added only after significant testing by sites using the alpha packages.
Bug fixes applied as needed.

Importing the signing key

Defining a signing key for all repositories is now deprecated, so instead we install the signing key in /usr/share/keyrings/ and then tell apt to use that key when updating from our repository specifically.

curl -fsSL http://www.mdsplus.org/dist/mdsplus.gpg.key | sudo tee /usr/share/keyrings/mdsplus.asc > /dev/null

wget -O- http://www.mdsplus.org/dist/mdsplus.gpg.key | sudo tee /usr/share/keyrings/mdsplus.asc > /dev/null

This will require: curl/wget, gnupg, sudo

Alternatively, you can install the key for all repositories, although this is less secure:

curl -fsSL http://www.mdsplus.org/dist/mdsplus.gpg.key | sudo tee /etc/apt/trusted.gpg.d/mdsplus.asc > /dev/null

wget -O- http://www.mdsplus.org/dist/mdsplus.gpg.key | sudo tee /etc/apt/trusted.gpg.d/mdsplus.asc > /dev/null

And failing both of those methods, you can add trusted=true to your deb entry in mdsplus.list which will disable key checking.

Enabling MDSplus Debian Repository

To add an MDSplus repository to your systen, simply run the following:

Debian

# Sid, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/sid/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# Sid, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/sid/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# Bullseye, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/bullseye/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# Bullseye, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/bullseye/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"
# Buster, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/buster/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# Buster, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/buster/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# Stretch, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/stretch/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# Stretch, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/stretch/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"
# Jessie, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/jessie/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# Jessie,  release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/jessie/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# Wheezy, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/wheezy/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# Wheezy, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/debian/wheezy/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

NOTE: Debian Wheezy, and Jessie are officially past end of life and there will be no more MDSplus updates available for them.

Raspberry Pi

# alpha release
sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/raspberrypi/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# stable release
sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/raspberrypi/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

Ubuntu

# 22, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/Ubuntu22/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# 22, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/Ubuntu22/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# 20, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/Ubuntu20/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# 20, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/Ubuntu20/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# 18, alpha release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/Ubuntu18/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# 18, stable release
sudo sh -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/mdsplus.asc] http://www.mdsplus.org/dist/Ubuntu18/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# 16, alpha release
sudo sh -c "echo 'deb http://www.mdsplus.org/dist/Ubuntu16/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# 16, stable release
sudo sh -c "echo 'deb http://www.mdsplus.org/dist/Ubuntu16/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"
# 14, alpha release
sudo sh -c "echo 'deb http://www.mdsplus.org/dist/Ubuntu14/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"	
# 14, stable release
sudo sh -c "echo 'deb http://www.mdsplus.org/dist/Ubuntu14/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

# 12, alpha release
sudo sh -c "echo 'deb http://www.mdsplus.org/dist/Ubuntu12/repo MDSplus alpha' > /etc/apt/sources.list.d/mdsplus.list"
# 12, stable release
sudo sh -c "echo 'deb http://www.mdsplus.org/dist/Ubuntu12/repo MDSplus stable' > /etc/apt/sources.list.d/mdsplus.list"

NOTE: Ubuntu 12, 14, and 16 are officially past end of life and there will be no more MDSplus updates available for them.

Updating local cache

Before you can use the new repository, you need to update the local repository cache:

sudo apt-get update

Downgrading to the previous release

To enable reverting to the previous release in the event that an update broke something you should also add a similar line to your sources list with MDSplus-previous instead of MDSplus:

deb [trusted=yes arch=amd64] http://www.mdsplus.org/dist/os-selection/repo MDSplus-previous flavor

This will enable you to specify the previous release number when using the apt-get install:

apt-get upgrade --only-upgrade 'mdsplus*'=n.n.n

where n.n.n is the version to downgrade to. To determine the version you can revert to use the following commands:

apt-get update
apt-cache showpkg 'mdsplus*'

This should show two versions, the most recent and the previous version of MDSplus in the repository.

MDSplus Packaging

MDSplus has been split into several packages so that you can install only the parts which you need. The following is the list of packages available to install. You can alway add or remove packages as needed.

Package Description
Catch all. If specific package is not specified, a catch all package will be installed which contains dependencies to the core system MDSplus subpackages.
camac scripts and tdi functions for communicating with CAMAC serial highway data acquisition devices.
camac_bin Libraries and executables for communicating with CAMAC serial highway data acquisition devices.
devel Include files for software development.
devel_bin Static libraries for software development.
epics Configuration files to provide the interface between EPICS and MDSplus
d3d Tdi scripts for accessing data at the D3D experiment operated by GA in California.
epics Configuration files used to integrate MDSplus into the EPICS control system software package.
gsi Globus security infrastructure configuration files to enable secure mdsip communication using X.509 certificate authentication and authorization.
gsi_bin Globus security infrastructure interface libaries to enable secure mdsip communication using X.509 certificate authentication and authorization.
hdf5 tdi functions to convert between HDF5 and MDSplus data files.
hdf5_bin Libraries and utilities to convert between HDF5 and MDSplus data files.
idl Procedures used to access MDSplus from within the IDL (Interactive Data Language) product.
idl_bin Libraries needed to access MDSplus from within the IDL (Interactive Data Language) product.
java Java classes for accessing MDSplus from within java. Includes utilities such as jScope, jTraverser, and jDispatcher.
java_bin Libraries used for accessing MDSplus from within java. Includes utilities such as jScope, jTraverser, and jDispatcher.
kbsidevices Device support of devices used by the Korea Basic Science Institute.
kernel All the core scripts and configuration files needed for most if not all MDSplus functions. Most other packages will include dependencies on this package.
kernel_bin All the core libraries and executables needed for most if not all MDSplus functions. Most other packages will include dependencies on this package.
labview Labview VI's for accessing MDSplus.
labview_bin Libraries needed by Labview VI's for accessing MDSplus.
matlab Matlab interface for MDSplus
mitdevices Device support for many types of data acquisition devices developed at MIT Plasma Science and Fusion Laboratory.
mitdevices_bin Libraries needed to provide device support for many types of data acquisition devices developed at MIT Plasma Science and Fusion Laboratory.
motif Configuration files for Openmotif based utilities including dwscope, traverser, actmon, and actions.
motif_bin Libraries and user interface descriptions used by the MDSplus motif applications.
mssql Interface to Microsoft SQL relational databases.
php PHP interface to MDSplus used for web cgi development.
python Python language support for accessing MDSplus from python or python from MDSplus.
rfxdevices Device support for many types of data acquisition devices developed for the RFX experiment in Padova.

Performing the installation

Depending on the MDSplus packages you are installing you may need to install additional packages that MDSplus uses but may not be pulled in by automatically detected packages during the MDSplus package building process. The following table list some of those extra dependencies:

MDSplus package Dependency Installation
mdsplus-python python-numpy apt-get install python-numpy
mdsplus-java a java jre i.e. "apt-get install openjdk-6-jre". 6 or greater
should work.
mdsplus-motif libmotif4 On Debian you need to add the "non-free" repo
then apt-get install libmotif4
mdsplus-mitdevices PyXML May need to "easy_install" this python module if
not in any apt repository.

Once the MDSplus repository is added to the /etc/apt/sources.list file. Installing MDSplus packages can be done using the apt-get command as follows:

sudo apt-get install mdsplus[-flavor]-package

If you are using the stable repository the following are some example installation commands:

sudo apt-get install mdsplus-python   #### Installs the python module and dependencies
sudo apt-get install mdsplus-kernel    #### Installs the core part of MDSplus
sudo apt-get install mdsplus             #### Installs all the core MDSplus packages

If you are using the alpha repository you need to include the flavor in the package name:

sudo apt-get install mdsplus-alpha-camac #### Installs the alpha version of camac package
sudo apt-get install mdsplus-alpha           #### Installs all the alpha packages

Note you can only install packages from one flavor of repositories since packages from different releases may be incompatible.

After successfully installing MDSplus you will need to log out and back in to pick up environment variables needed to operate MDSplus.

Updating your installation

To perform updates of your MDSplus packages simply do:

sudo apt-get upgrade "mdsplus*"

Manually installing MDSplus packages

It is possible to manually install MDSplus debian packages instead of using a debian repository but you will need to deal with the dependencies your self. It is much easier to use the repository. The following tables are lists of the most recent MDSplus debian packages.

To download packages manually browse to http://www.mdsplus.org/dist/os-type/branch/DEBS and search for the desired debian packages where os-type is one of the debian based supported operating systems and branch is either stable or alpha.


Post Installation Configuration

If you are going to access MDSplus trees using the distributed tree mechanism you will need to define environment variables with the name 'treename'_path which define where the tree files are located. These environment variables can be defined individually by the user but an easier way to define these environment variables is to configure these for all users by creating a /usr/local/mdsplus/local/envsyms file with definitions such as:

mytree_path /mytreedirspec

When users log into the system the script called /etc/profile.d/mdsplus.sh (or .csh) processes the file called /usr/local/mdsplus/etc/envsyms to define environment variables. This envsyms file is part of the MDSplus kernel and should not be modified. Instead this configuration file contains "include" directives to include other configuration files such as /usr/local/mdsplus/local/envsyms which is where site specific modifications to the environment should be made.

You can enable remote data access from this computer by first installing xinetd if it is not already installed. If you want unencrypted mdsip access to your system you will need to modify /etc/xinetd.d/mdsip and change the disabled option to "no" and then reload the xinetd configuration by issuing the command:

/sbin/service xinetd reload

(If the file /etc/xinetd.d/mdsip doesn't exist, it can be copied from /usr/local/mdsplus/rpm/mdsipd.xinetd and renamed to /etc/xinetd.d/mdsip.)

If you have the gsi package installed and want to enable the encrypted gsi service you need to modify /etc/xinetd.d/mdsips and reload xinetd. You will also need to open these ports on the iptables firewall.

The control of who can connect to your computer using these services and which accounts the connections get mapped to is configured in a file called /etc/mdsip.hosts. This file should contain lines of the format:

remote-user-connection-string | local-account

where the remote-user-connection-string for unencrypted mdsip would be something like remote-username@remote-hostname. This connection string can contain wildcards. For example, one could specify *&*.mydomain.org to match any user connecting from a host in the mydomain.org domain. Each asterisk in the connection string will match zero or more arbitrary characters. A percent character will match any single character. You can use either host names or ipv4 addresses. When a connection is first made, the connection string is checked for a match in the mdsip.hosts file starting from the top. Match checking stops when the first match has been found. There is also a special MAP_TO_LOCAL keyword that can be used instead of a specific local-account name. This will attempted to map the incoming connection to the same account name as the remote user account name. If you place an exclamation mark as the first character in a line, a match on the incoming connection string will result in the connection being denied. Lines beginning with # will be treated as comments and will be ignored.

If you are using the gsi enabled service the remote user connection string consists of the distinguished name (DN) or the X.501 certificate used by the client to authenticate with the server followed by the remote hostname or ip address. Your mdsip.hosts account matching lines should then look something like:

/O=Grid/O=National Fusion Collaboratory/OU=MIT/CN=Thomas W. Fredian/* | xyz

Enabling automatic updates

Ubunutu automatic package updates are done by the unattended-upgrades package. Install and configure it as per: https://libre-software.net/ubuntu-automatic-updates/

Then add the following line to: /etc/apt/apt.conf.d/50unattened-upgrades in the 'Unattended-Upgrade::Allowed-Origins' section

       "MDSplus Development Team:*"