MDSplus now provides a yum repository for a few 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.
There are currently 3 different release levels of MDSplus:
|Stable|| Updates occur less frequently. |
New features added only after significant testing by sites using an alpha version.
Bug fixes applied as needed.
|Alpha|| Updates occur whenever any change to an MDSplus source module. |
Reflects the alpha branch in the git repository.
MDSplus depends on a variety of additional software packages many of which are included with standard RedHat Enterprise Linux distributions. There are additional packages in the EPEL (Extra Packages for Enterprise Linux) that MDSplus uses. You should configure your system to include the EPEL repository BEFORE trying to install the MDSplus software. You can find more information about EPEL and the rpm's for configuring your system to use it on the EPEL Home Page.
For RHEL8/CENTOS8 ( <8.3) a few additional steps may be required
yum install 'dnf-command(config-manager)' yum config-manager --set-enabled PowerTools
For RHEL8/CENTOS8 ( at least 8.3) a few additional steps may be required
As per https://github.com/MDSplus/mdsplus/issues/2272 centos python3 setuptools is broken. Prior to installing MDSplus create a link to where it thinks site-packages are installed:
sudo mkdir /usr/local/lib/python3.6 sudo ln -s /usr/lib/python3.6/site-packages /usr/local/lib/python3.6/
To use the GLOBUS (GSI) enabled clients and servers install Globus
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf install http://downloads.globus.org/toolkit/gt6/stable/installers/repo/rpm/globus-toolkit-repo-latest.noarch.rpm
Enabling MDSplus Yum Repository
To configure your system to utilize the MDSplus repository you need to install a repository rpm. You should only use one release level repository on your system as the packages included in the different repositories will conflict with each other. Installing the repository rpm will simply enable you to install MDSplus software packages using the yum utility.
You may set it up manually:
OS=fc30 # fc29 fc28 .. el6 el7 FLAVOR=alpha # stable sudo sh -c " curl -fsSL http://www.mdsplus.org/dist/RPM-GPG-KEY-MDSplus -o /etc/pki/rpm-gpg/RPM-GPG-KEY-MDSplus cat - > /etc/yum.repos.d/mdsplus.repo << EOF [MDSplus-alpha] name=MDSplus-alpha baseurl=http://www.mdsplus.org/dist/$OS/$FLAVOR/RPMS enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MDSplus metadata_expire=300 EOF "
or install the repository rpm. You can click on the repository you want in the table and then:
yum install downloaded-file-name
The following are repositories for operating systems that have reached their end of life. We have or will be stopping updates for these systems.
Once you have configured your system with the EPEL and the appropriate MDSplus yum repository you should be ready to install the MDSplus software.
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.
|Catch all. If specific package is not specified, a catch all rpm will be installed which contains dependencies on all the MDSplus subpackages. Install this if you want to install everything.|
|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.|
|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
Once the appropriate repository has been installed you can install the desired MDSplus package(s) using the yum utility. The general format of the yum command to install MDSplus packages is as follows:
yum install mdsplus[-releasetype][-packagename]
where the releasetype would be '-alpha' or missing for the stable release. The releasetype specified must match the repository type which you have selected. The packagename would be one of the names given in the previous table. Examples:
yum install mdsplus
Valid if the stable repository was installed and you would like to install all the packages.
yum install mdsplus-alpha-python
Installs the python package and any required dependencies if the alpha repository was installed.
You can also show the MDSplus packages in the repository using the following command:
yum list "mdsplus*"
Note: It is highly recommended that you disable the MDSplus repository after installing the repository rpm. This is especially true if you are using the alpha repository. This will prevent automatic updating of your MDSplus packages letting you decide when you want to install an update. The easiest way to do this is to edit the mdsplus repository file found in /etc/yum.repos.d/ and change the line:
Once this is done, yum commands will ignore the MDSplus repository unless you included the option:
--enable-repo=MDSplus (or --enable-repo=MDSplus-alpha if you are using the alpha repository)
For example to update your MDSplus packages you would use:
$ yum update --enable-repo=MDSplus "mdsplus*"
or to list and install packages from the alpha repository:
$ yum list --enable-repo=MDSplus-alpha "mdsplus*" $ yum install --enable-repo=MDSplus-alpha mdsplus-alpha-python
Updating your installation
You can update your installed MDSplus packages by issuing the following command:
yum update "mdsplus*"
or if automatic updates have been disabled:
yum update --disableexcludes=main "mdsplus*"
Manually installing MDSplus packages
It is possible to manually install MDSplus rpm's instead of using a yum repository but you will need to deal with the dependencies your self. It is much easier to use the repository. You can browse the repositories by clicking the Browse All Rpms link to browse the directories of the repositories and find the actual rpm's for the various packages and download them directly in your browser.
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:
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 /etc/mdsplus.conf or /usr/local/mdsplus/local/envsyms which is where site specific modifications to the environment should be made. There is a template file, /usr/local/mdsplus/etc/mdsplus.conf.template which may be copied and placed in /etc/mdsplus.conf.
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 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. There is a template for this file in the installation package, /usr/local/mdsplus/etc/mdsip.hosts, which may be copied to /etc/and modified. 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