Perseus Software Configuration Changes in 2015

Links below were the guides to what was done. It should be assumed that the indicated steps were executed by root.

After a long hiatus, into 2015... the RAID-0 pairs were undone, and the four 1TB HDDs were formatted to be separate devices again.

Then CentOS 7 could (and did) become the default OS, so further installations could proceed...

Change hostname in CentOS 7 (used hostnamectl too; didn't see a change in /etc/sysconfig/network, assumed that was OK)

echo perseus.lps.cornell.edu > /etc/hostname
systemctl restart systemd-hostnamed

Synced all UIDs and GIDs with /etc/passwd and /etc/group in Fedora: Linux: Changing UIDs and GIDs for a user

Checked to see if Open MPI was already installed (it wasn't). Installed Open MPI and verified that a corresponding module was created.

repoquery --list openmpi
yum install openmpi openmpi-devel
module avail  # for the modules system in bash

In order to install X2Go: Install EPEL and additional repositories on CentOS and Red Hat

yum install epel-release

X2Go Server installation

yum install x2goserver

Tested a connection to Perseus using the X2Go client for Windows, but ran into a known incompatibility with GNOME Desktop 3.8.
Desktop Environment Compatibility
'Oh no! Something has gone wrong'
CentOS 7, Gnome3 & NX

KDE seemed to work, more or less, though as noted in one of the posts, the KDE remote desktop is quirky in X2Go.
For example, the task bar doesn't appear at all until the X2Go client window has been resized once manually.

MATE was recommended by Lars V. as an alternative desktop; it is a fork of GNOME2, which (from experience) works fine in X2Go.
Install MATE or XFCE on CentOS 7
Install - Red Hat Enterprise Linux 7

yum groupinstall "MATE Desktop"

MATE worked generally well, but one odd thing cropped up which is described in a past Red Hat bug report -
"The behavior I see is that NetworkManager stays in the 'twirling' animation. If I mouse over it, it says: Requesting address for 'virbr0'..."
The 'virbr0' is NOT just some weird thing installed by MATE; likely it was introduced during the full system refresh on 2/5/2015.

whereis libvirtd
ls -l /usr/sbin/libvirtd

It sets up a virtual network so VMs can share the network adapter. Advice in the bug report fixed things - at least temporarily:

systemctl restart NetworkManager
ifconfig  # to check on virbr0 interface - /usr/sbin must be in PATH

But nothing really seems to depend on libvirt - Listing packages in Yum that depend on another installed package

rpm -q --whatrequires libvirt

Other advice suggested including "ONBOOT=yes" in /etc/sysconfig/network-scripts/ifcfg-virbr0, but disabling the libvirt daemon seemed easier.


virsh             # starts the virtualization interactive terminal
net-info default  # shows virbr0 is the default network 
net-list --all    # shows Autostart=yes for the default network 
net-autostart default --disable
net-list          # shows the default network has Autostart=no

After a reboot, the Network Manager (upper left corner of the MATE desktop) no longer lists virbr0, so it seems the glitch is fixed.

net-list --all    # shows the default network has State=inactive

ParaView: Build and Install - Prerequisites are CMake, Qt, ffmpeg, and OpenGL. Three of these were already present on the system, by this test:

rpm -qa | grep cmake  # same for qt, freeglut (ffmpeg was absent)

The ffmpeg package itself must be built from source. Further prerequisites must be present, as documented at the ffmpeg wiki:

Compile FFmpeg on CentOS

Upon checking, only nasm was missing, so it was installed, then a standard configure/make procedure was followed for ffmpeg:

yum install nasm
wget ffmpeg.org/releases/ffmpeg-2.6.1.tar.bz2
bzip2 -d ffmpeg-2.6.1.tar.bz2
tar xvf ffmpeg-2.6.1.tar
./configure
make
make install > make-install-output

Finally, ParaView 4.3.1 for Linux 64-bit was installed by downloading the binaries, unpacking the tar file, and copying everything into /opt.

tar xvfz ParaView-4.3.1-Linux-64bit-glibc-2.3.6.tar.gz
cp -pr /user1/scratch/slantz/ParaView-4.3.1-Linux-64bit /opt
chown -R root:root /opt/ParaView-4.3.1-Linux-64bit

A desktop icon for it was created in MATE (via X2Go) by right-clicking the desktop, choosing "Create Launcher...", and specifying:

Name: ParaView
Command: /opt/ParaView-4.3.1-Linux-64bit/bin/paraview
Comment: 3d visualization tool
[click on icon]: /opt/ParaView-4.3.1-Linux-64bit/share/icons/hicolor/96x96/apps/paraview.png

This resulted in a file named "ParaView.desktop" being created in ~/Desktop. This was renamed paraview.desktop.

The next goal was to add a similar launcher to the Applications menu for all users, starting from ~/Desktop/paraview.desktop.
This file was copied into /usr/share/applications, the shebang line (#!/usr/bin/env xdg-open) was removed, and the icon size was reduced:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/ParaView-4.3.1-Linux-64bit/share/icons/hicolor/22x22/apps/paraview.png
Name[en_US]=ParaView
Exec=/opt/ParaView-4.3.1-Linux-64bit/bin/paraview
Comment[en_US]=Create 3d visualizations of data
Name=ParaView
Comment=Create 3d visualizations of data
Icon=/opt/ParaView-4.3.1-Linux-64bit/share/icons/hicolor/22x22/apps/paraview.png
Categories=Graphics;

The last line was added so that the new menu item would appear the in the Graphics submenu of the Applications menu for all users.
How To Add an Item To The GNOME Menu For All Users (editing the /etc/xdg/menus/applications.menu was not necessary)
It seems best to add the semicolon after "Graphics" as a list is expected here.

It seemed good to add the ParaView launcher to the MATE panel (top menu bar) as well. A few more tricks are needed for that...
Globally adding items to panel
How to tweak your panel layouts
Steps: right-click on top menu bar in the desired location, choose Application Launcher... > Graphics > ParaView.
Next, dump the current layout to file ~/dump.layout using panel_dump_layout.py from the second link above.
Finally, create a new MATE layout file based on the dump, then change some settings...

gsettings get org.mate.panel default-layout
'rhel'
cp /usr/share/mate-panel/layouts/rhel.layout /usr/share/mate-panel/layouts/rhel-pv.layout
# edited the rhel-pv.layout file to add the ParaView launcher at menu bar position=40...
diff /usr/share/mate-panel/layouts/rhel*layout
37a38,45
> [Object launcher]
> launcher-location=/usr/share/applications/paraview.desktop
> locked=true
> menu-path=applications:/
> object-type=launcher
> position=40
> toplevel-id=top
> 
gsettings set org.mate.panel default-layout 'rhel-pv'
gsettings get org.mate.panel default-layout
'rhel-pv'
mate-panel --reset

With the new default layout, the last command is equivalent to "mate-panel --reset --layout rhel-pv".
That succeeded in making the ParaView icon and launcher appear in the menu bar.
But it was still not clear whether the ParaView launcher would appear for all users.
Customize default desktop environment settings for Gnome-centric Linux distributions

# two separate overrides were created, to be double sure!
# after editing /usr/share/glib-2.0/schemas/paraview-launcher.gschema.override...
diff /dev/null /usr/share/glib-2.0/schemas/paraview-launcher.gschema.override
0a1,2
> [org.mate.panel]
> default-layout='rhel-pv'
cp mate-rhel.gschema.override zzmate-rhel.gschema.override
# after editing /usr/share/glib-2.0/schemas/zzmate-rhel.gschema.override...
diff *mate-rhel*
16c16
< default-layout='rhel'
---
> default-layout='rhel-pv'
glib-compile-schemas /usr/share/glib-2.0/schemas/

These desktop customizations completed the ParaView-related work.

It turns out the screen command was not installed in the OS by default, so this was added.

yum install screen

In screen, bash shells were not initializing the PATH properly for Open MPI and the Intel compilers.
This was true even when the user put appropriately customized .bash_profile and .bashrc files into $HOME.
Therefore, a special file, /etc/profile.d/zzintel-openmpi.sh, was created to handle all types of shells.

if [ -z "`echo $PATH | grep intel`" ]; then
  . /opt/intel/bin/ifortvars.sh intel64
fi
. /usr/share/Modules/init/sh
module unload mpi
module load mpi
export OMPI_FC=ifort


Last updated on 7/7/17 by Steve Lantz (steve.lantz ~at~ cornell.edu)