Latest RPM's and Yum repositories - MdsWiki
Navigation
Personal tools

From MdsWiki

Jump to: navigation, search

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.

Contents

Release Levels

There are currently 3 different release levels of MDSplus:

Release Level Description
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.

EPEL 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 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 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:

enabled=1

to:

enabled=0

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.

Environment variables

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 /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.

Remote access

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