r20 - 13 Feb 2008 - 17:16:02 - EvanBolligYou are here: TWiki >  Computing Web > VisCluster > SoftwareInstallation

Notes on Installing Software in the VisLab

HPxw6400.jpg

SCS VisLab:

This document provides notes for installing software on the machines in the SCS VisLab.

General Procedure for Software Installation

Yum + Local We have discovered that installing software in /apps/ can cause network overload when users execute programs. This is due to the fact that LD_LIBRARY_PATH and other variable point to networked directories that must be searched before executing any command. In our case we had put so many libraries in /apps/lib that even "ls" was reduced to waiting five minutes to complete. Therefore we have changed the order in which we install software such that local installations outweigh /apps/. Whenever possible we log into scotty and run (as root or with sudo):

tentakel yum -y install XXXXX

This will redirect the installation of an rpm to each of the local machines and avoid /apps/. This type of software generally installs to /usr/bin. NOTE that the "-y" above tells yum to assume yes to all questions. This is necessary because tentakel does not provide fully interactive control of client nodes and installations will hang unless you know exactly what questions are asked and what your answer should be (take my word for it, this is not easy to figure out so just use -y).
Manual + Local In a few cases we are limited to installing software manually on individual machines. This is typically for licensed software like Amira, Maple, Mathematica and Matlab. For these situations we install the software to /opt/ to keep the installation separate from the rest of the system. We then link the binaries to /usr/local/bin so they are on the users' PATH.
Yum + /apps/ Whenever we install a rarely used title or a title that we want to test but not fully install, we log into scotty and run (as root or with sudo):

yum --installroot /apps/ install XXXXX

This will redirect the installation of an rpm to /apps/. If the rpm by default installs to /bin it will be installed in /apps/bin. If it defaults to /usr/bin, it will install in /apps/usr/bin. By using RPMs we save time troubleshooting compilations, installation directories, as well as automatically keep a log of every installed file for future removal. NOTE that users must add /apps/bin and /apps/lib to their own paths. By default we do not do this as it causes unnecessary lag in our network.
Manual + /apps/ Third party software NOT available as an RPM can be manually installed in /apps/opt/XXXXX through root or sudo on scotty. For each of these binaries a symbolic link is made in /apps/usr/bin to add the software automatically to the classpath. In some instances a link does not exist because the /apps/opt/XXXX/bin is directly mapped onto the PATH (i.e. through /apps/profile.d/apps.(c)sh which is discussed in the section " Adding Binaries from a New InstallRoot to A User's PATH" below.

Installed Software

Amira

Executable /usr/local/bin/amira
Usage Examples %> amira
%> amira -help
%> amira <datafile/amira script>
Installed Location /usr/local/bin/amira
/opt/Mercury/Amira4.1
/opt/Mercury/Amira4.1/doc/amiraUsersGuide.pdf
Installation Commands 1) Download the demo from Amira's homepage (http://www.tgs.com/pro_div/dwnld_eval.asp?vp=60
2) (as root/sudo on individual machines) %> sh Amira41-LinuxAMD64.bin
3) Change installation directory to /opt/Mercury/Amira4.1
4) Edit /opt/Mercury/Amira/share/license/password.dat to add machine specific license (obtained by contacting Amira sales directly)
5) (as root/sudo) %> cd /usr/local/bin ; ln -s /opt/Mercury/Amira4.1/Amira4.1Shortcut.sh amira
Installation Issues 1) The default installed /opt/Mercury/Amir4.1/Amira4.1Shortcut.sh does not allow us to pass commands to the amira binary. To add support for this we must manually edit the file and add a "$@" to the last line of the script.
2) Licenses are very confusing and we spent many days troubleshooting correct machine codes and licenses with TGS. Here is a tip: launch the demo version of amira and look at the pop-up prompting you for a license. The machine code that the pop-up provides on the far right side is the code you must tell TGS when you call to purchase a license. If you just give them a hostname or a MAC address they will assign an incorrect license. ONLY the code Amira provides will work.

Audacity

Executable /usr/bin/audacity
Usage Examples %> audacity
%> man audacity
Installed Location /usr/bin
/usr/share/audacity
/usr/share/doc/audacity
Installation Commands (as root/sudo)
%> tentakel yum -y install audacity
Installation Issues Yum had issues installing depedencies to /apps

Blender

Executable /usr/bin/blender
/usr/bin/blenderplayer
Usage Examples %> blender &
%> blenderplayer -g vertexarrays = 0 ./myBlenderRendering.blend
Installed Location /usr/bin
/usr/lib64/blender
/usr/share/blender
/usr/share/doc/blender-2.42a
Installation Commands (as root/sudo) %> tentakel yum -y install blender.x86_64
Installation Issues This software was not installed on /apps/ because the blender RPM and its dependencies contain scripts that do not allow the installroot directory to be changed.
Also, to force blender to open as a resizeable window we add the "-w" option to the last line of /usr/bin/blender just before the @ (line should read: "/usr/bin/blender.bin -w $@"

BuGLe?

Executable /usr/local/bin/gldb
/usr/local/bin/gldb-gui
Usage Examples %> gldb [program] [program args]
Installed Location /usr/local/bin
/usr/local/lib/
/usr/local/lib64
/usr/local/include/bugle
/usr/local/share/doc/bugle
/etc/ld.so.conf.d/bugle.conf
Installation Commands 1) [[http://sourceforge.net/projects/bugle/] [Download BuGLe?]]
2) copy the shell script below to your home directory (modify so it points to the correct BuGLe? tarball and directory)
2) (as root/sudo) %> tentakel sh ~/installBugle.sh
installBugle.sh #!/bin/sh

cd $HOME

# change the bugle version here:
BUGLE=bugle-0.0.20080123

# Change the directory here to wherever you saved the bugle tarball:
tar xvfz ~bollig/SOFTWARE/$BUGLE.tar.gz

cd $BUGLE

./configure

case `uname -i` in
i386)
make
;;
*64)
echo "64-bit compilation. Patching..."
sed -i 's#sys_lib_search_path_spec="#sys_lib_search_path_spec="/usr/lib64 #' libtool
make
;;
esac

make install

echo "/usr/local/lib" > /etc/ld.so.conf.d/bugle.conf

/sbin/ldconfig

Cg

Executable
Usage Examples /usr/local/Cg/examples
Installed Location /usr/local/Cg
/usr/include/Cg
/usr/lib64/libCg.so
/usr/share/doc/Cg/index.html
Installation Commands %> wget http://developer.download/nvidia.com/cg/Cg_1.5/1.5.0/Cg-1.5.x86_64.rpm
(as root/sudo)
%> tentakel yum localinstall Cg-1.5.x86_64.rpm
Installation Issues 1) This rpm installs examples, documentation and libraries all at once.
2) This command installs fine on some systems but not on others. The error some experience is "Package Cg-1.5.x86_64.rpm is not signed"
SOLUTION: make sure "gpgcheck=" is set to 0 in /etc/yum.conf on machines where it fails.
3) To build binaries of the examples in /usr/lcoal/Cg/examples you must export the environment varaible TARGET_MACHTYPE=x86_64 or the build will fail while linking.

Chimera

Executable /apps/opt/chimera/bin/chimera
Usage Examples %> chimera
Installed Location /apps/opt/chimera
Installation Commands (as root/sudo)
# --> Download chimera installer: http://www.cgl.ucsf.edu/chimera/download.html
%> chmod +x chimera*.exe ; ./chimera*.exe
# --> Change installation destination to /apps/opt/chimera
# --> Lastly, edit /apps/profile.d/apps.(c)sh as specified below.
Installation Issues The 64-Bit version of Chimera has many bugs and memory issues. We use the 32-bit version because it is more frequently developed and tested.
Also, if the installation fails when you change the installation directory, you must remember to run the installer as root.
For apps.csh Add lines:
set CHIMERA_BIN="/apps/opt/chimera/bin"
...
setenv PATH "${PATH}:${CHIMERA_BIN}"
For apps.sh Add lines:
CHIMERA_BIN="/apps/opt/chimera/bin"
...
PATH=$PATH:$CHIMERA_BIN

CMake

Executable /usr/bin/cmake
/usr/bin/ccmake
Usage Examples %> cmake .
---> Looks for CMakeLists.txt in the local directory and auto-generate a makefile
%> ccmake .
---> Uses CMakeLists.txt to generate text UI to interactively configure Makefile
man cmake
Installed Location /usr/bin
/usr/share/cmake
/usr/share/man/man1/cmake
Installation Commands (as root/sudo) %> tentakel yum -y install cmake
Installation Issues none

Coin2

Executable none (this is a development library)
Usage Examples none
Installed Location /usr/include/Coin2
/usr/share/Coin2
/usr/share/doc/Coin2-2.4.5
Installation Commands (as root/sudo)
tentakel yum -y install Coin2 Coin2-devel
Installation Issues We installed this on individual machines so Coin2 is available in default locations for any other software that may depend on it.

CUDA Visual Profiler (Beta)

Executable /opt/CudaVisualProfiler/bin/cudaprof
Usage Examples %> cudaprof
(on FC5 machines only) %> export LD_LIBRARY_PATH=$CUDAPROFILER_HOME/bin; cudaprof
Installed Location /opt/CudaVisualProfiler/
Installation Commands (as root/sudo)
1) %> tentakel yum -y install qt4-devel.i386 qt4.i386
2) %> tentakel "cd /opt; tar xvfz ~/CudaVisualProfiler_0.1_beta_linux.tar.gz"
3) Create cudaVisProf.(c)sh in /etc/profile.d using the provided scripts (below).
Installation Issues See the second usage example: FC5 does not have the required Qt4 libraries so you must use the libs provided with the CudaVisualProfiler?.
cudaVisProf.sh export CUDAPROFILER_HOME=/opt/CudaVisualProfiler
export PATH=$PATH:$CUDAPROFILER_HOME/bin
cudaVisProf.csh setenv CUDAPROFILER_HOME "/opt/CudaVisualProfiler"
setenv PATH ${PATH}:${CUDAPROFILER_HOME}/bin"

gDEBugger

Executable /usr/local/bin/gdebugger
/opt/gDEBugger/GDebuggerApp
Usage Examples %> gdebugger
Installed Location /opt/gDebugger
Installation Commands (as root/sudo)
%> cd /opt && tar xvfz ~/gDEBugger30-x86_64-beta2.tar.gz
%> cp ~/gdebugger /usr/local/bin/.
%> chmod +x /usr/local/bin
Installation Issues NOTE: The copy command in the list of "Installation Commands" is necessary because the software is installed in /opt and we have created a script named "gdebugger" that goes into /usr/local/bin to allow users access to the program without the installation directory on their path. This script is provided below.
Other Issues 1) gDEBugger can use the NVPerfKit? for additional debugging information. See details of NVPerfKit? below.
3) This version of gdebugger does not open your application when it is passed as a command line argument (i.e. if you call %> gdebugger ./myprogram ).
gdebugger (put in /usr/local/bin) #!/bin/csh -f
cd /opt/gDebugger/
./GDebuggerApp $*

GLSLDevil

Executable /opt/glsldevil/release64/glsldb
Usage Examples %> glsldb
Installed Location /opt/glsldevil/release64
Installation Commands (as root/sudo) %> cd /opt ; tar xvfz ~/glsldevil-1.1.1.tar.gz; ln -s glsldevil-1.1.1 glsldevil
Installation Issues This software does not work on Fedora Core 5 (Kirk and Uhura -- 2/11/08).

Gnuplot

Executable /usr/bin/gnuplot
Usage Examples %> cd /usr/share/doc/gnuplot-4.0.0/demo ; gnuplot world.dem
Installed Location /usr/bin/
/usr/share/doc/gnuplot-4.0.0/demo
Installation Commands (as root/sudo) %> tentakel yum -y install gnuplot
Installation Issues none

HP Remote Visualization Software

Executable Software is no longer installed due to security issues and lack of support for many features we desire. Cost is also high so we are investigating NoMachine NX as a free alternative.
Usage Examples none
Installed Location none
Installation Commands none
Installation Issues HP sent us their binaries for installing this software. Unfortunately they only compile the software with RHEL4. RHEL4 came pre-installed on Kirk only and would have cost us lots of money to put the same system on the rest of the VisLab. The ease of use and null cost of Fedora convinced us that RHEL4 was not a system we wanted to use.
At this point we have gotten the software installed on our machines, but we found that the rgsender is unable to handle two graphics cards on a single machine. If one GPU outputs to two monitors it is supported though... Also, a few more issues were discovered:
1) the software definitely requires a dedicated server. Remote users' actions appear on screen and sensitive material can be viewed by local users. Also, the system does not lock out local users during a remote session which means local users can kick off the remote connection and have full access to another user's account. At least with a dedicated server things would be private and remote users wont interfere with local use of the machines.
2) When two receivers connect to the same machine the first to connect is prompted to relinquish control to the second receiver. If they deny permission or do not respond within a set amount of time the second receiver is automatically denied connection. This means a user who connects and walks away blocks all new users from logging on (unless they are at the console). Root access was disabled from the receiver when I tried...this I take to mean there is no other way to close a blocked session than from the console.
3) when a remote user closes the rgreceiver window it should log them out of the rgsender session. As it stands now, a client closing the window without logging out blocks all other receivers from connecting.

Intel C/C++ Compiler (Free Linux Version)

Executable /opt/intel/cce/9.1.044/bin/icc #(64-bit)
/opt/intel/cc/9.1.044/bin/icc #(32-bit)
Usage Examples %> icc -help
%> man icc
Installed Location /opt/intel/cce/9.1.044/bin
/opt/intel/cce/9.1.044/include
/opt/intel/cce/9.1.044/doc
Installation Commands # --> Download the free linux version from http://www.intel.com/cd/software/products/asmo-na/eng/compilers/clin/219856.htm
(as root/sudo)
%> tar xvfz l_cc_*.tar.gz
%> cd l_cc* ; mkdir -p /opt/intel/cce/9.1.044/licenses ; ln -s icc_license.lic /opt/intel/cce/9.1.044/licenses/icc_license.lic
%> ./install.sh
# --> provide absolute path to the license file and then choose custom install type. From custom install menu install both the 32-bit and 64-bit versions and optionally the debuggers too.
# --> Finally users must individually add the line "source /opt/intel/cce/9.1.044/bin/iccvars.csh" to their ~/.bashrc or ~/.cshrc files
Installation Issues We used to have the 64-Bit version of the compiler on users' paths by default. We now require users to source the appropriate iccvars.(c)sh file for their desired version (32-bit or 64-bit). For example, to use the 32-Bit installation, simply run this command (or place it in your ~/.*rc file):
%> source /opt/intel/cc/9.1.044/bin/iccvars.sh
To verify you are using the 32-bit version run `which icc`. You should see "/opt/intel/cc/9.1.044/bin/icc" instead of "/opt/intel/cce/9.1.044/bin/icc"
If users prefer to use (t)csh for their shell, you may need to port the iccvars.sh to iccvars.csh. This is provided below
iccvars.csh #! /bin/tcsh
if !($?PATH) then
setenv PATH "/opt/intel/cce/9.1.044/bin"
else
setenv PATH "/opt/intel/cce/9.1.044/bin:$PATH"
endif

if !($?LD_LIBRARY_PATH) then
setenv LD_LIBRARY_PATH "/opt/intel/cce/9.1.044/lib"
else
setenv LD_LIBRARY_PATH "/opt/intel/cce/9.1.044/lib:$LD_LIBRARY_PATH"
endif

if !($?MANPATH) then
setenv MANPATH "/opt/intel/cce/9.1.044/man:`manpath`"
else
setenv MANPATH "/opt/intel/cce/9.1.044/man:$MANPATH"
endif

if !($?INTEL_LICENSE_FILE) then
setenv INTEL_LICENSE_FILE "/opt/intel/cce/9.1.044/licenses:/opt/intel/licenses:$HOME/intel/licenses"
else
setenv INTEL_LICENSE_FILE "/opt/intel/cce/9.1.044/licenses:/opt/intel/licenses:$HOME/intel/licenses:$INTEL_LICENSE_FILE"
endif

Intel Fortran Compiler (Free Linux Version)

Executable /opt/intel/fce/9.1.036/bin/ifort #(64-bit)
/opt/intel/fc/9.1.0036/bin/ifort #(32-bit)
Usage Examples %> ifort -help
%> man ifort
Installed Location /opt/intel/fce/9.1.036/bin
/opt/intel/fce/9.1.036/include
/opt/intel/fce/9.1.036/doc
Installation Commands # --> Download the free linux version from http://www.intel.com/cd/software/products/asmo-na/eng/compilers/flin/219857.htm
(as root/sudo)
%> tar xvfz l_fc_*.tar.gz
%> cd l_fc* ; mkdir -p /opt/intel/fce/9.1.036/licenses ; ln -s ifort_license.lic /opt/intel/fce/9.1.036/licenses/ifort_license.lic
%> ./install.sh
# --> provide absolute path to the license file and then choose custom install type. From custom install menu install both the 32-bit and 64-bit versions and optionally the debuggers too.
# --> Finally add the line "source /opt/intel/fce/9.1.036/bin/ifortvars.(c)sh" to both /apps/profile.d/apps.(c)sh files
Installation Issues We used to have the 64-Bit version of the compiler on users' paths by default. We now require users to source the appropriate iccvars.(c)sh file for their desired version (32-bit or 64-bit). For example, to use the 32-Bit installation, simply run this command (or place it in your ~/.*rc file):
%> source /opt/intel/fc/9.1.042/bin/iccvars.sh
To verify you are using the 32-bit version run `which ifort`. You should see "/opt/intel/fc/9.1.042/bin/ifort" instead of "/opt/intel/fce/9.1.036/bin/ifort".
If users prefer to use (t)csh for their shell, you may need to port the ifortvars.sh to ifortvars.csh. This is provided below:
ifortvars.csh #! /bin/tcsh
if !($?PATH) then
setenv PATH "/opt/intel/fce/9.1.036/bin"
else
setenv PATH "/opt/intel/fce/9.1.036/bin:$PATH"
endif

if !($?LD_LIBRARY_PATH) then
setenv LD_LIBRARY_PATH "/opt/intel/fce/9.1.036/lib"
else
setenv LD_LIBRARY_PATH "/opt/intel/fce/9.1.036/lib:$LD_LIBRARY_PATH"
endif

if !($?MANPATH) then
setenv MANPATH "/opt/intel/fce/9.1.036/man:`manpath`"
else
setenv MANPATH "/opt/intel/fce/9.1.036/man:$MANPATH"
endif

if !($?INTEL_LICENSE_FILE) then
setenv INTEL_LICENSE_FILE "/opt/intel/fce/9.1.036/licenses:/opt/intel/licenses:$HOME/intel/licenses"
else
setenv INTEL_LICENSE_FILE "/opt/intel/fce/9.1.036/licenses:/opt/intel/licenses:$HOME/intel/licenses:$INTEL_LICENSE_FILE"
endif

ITK

Executable none (this is a development library)
Usage Examples %> man itk
Installed Location /usr/include
/usr/lib64/itk3.3
/usr/share/doc/itk-3.3
Installation Commands (as root/sudo)
%> tentakel yum -y install itk itk-devel
Installation Issues none

Maple v10

Executable /usr/local/bin/maple
/usr/local/bin/mint
/usr/local/bin/xmaple
Usage Examples %> maple #(maple command prompt)
%> mint #(Maple diagnostic program)
%> xmaple & #(Maple GUI)
Installed Location /opt/maple10/bin
/opt/maple10/examples
/opt/maple10/man
Installation Commands (as root/sudo)
# --> Insert Maple10 DVD
# --> %> cd /opt ; sh /media/MAPLE10/network/installMaple
# --> Follow the GUI to finish the installation to /opt/maple10
# --> verify binaries "mint", "maple" and "xmaple" in /opt/maple10/bin are symbolic linked to /usr/local/bin
Installation Issues # Maple 10 has errors when trying to install from disk on FC5 and 64bit
# platforms.
# The exact error I received is:

[bollig@spock opt]$ sh /media/MAPLE10/network/installMaple
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
awk: error while loading shared libraries: libdl.so.2: wrong ELF class:
ELFCLASS32
dirname: error while loading shared libraries: libc.so.6: wrong ELF
class: ELFCLASS32
/bin/ls: error while loading shared libraries: librt.so.1: wrong ELF
class: ELFCLASS32
basename: error while loading shared libraries: libc.so.6: wrong ELF
class: ELFCLASS32
dirname: error while loading shared libraries: libc.so.6: wrong ELF
class: ELFCLASS32
basename: error while loading shared libraries: libc.so.6: wrong ELF
class: ELFCLASS32
hostname: error while loading shared libraries: libc.so.6: wrong ELF
class: ELFCLASS32

Launching installer...

grep: error while loading shared libraries: libc.so.6: wrong ELF class:ELFCLASS32
/tmp/install.dir.4527/Linux/resource/jre/bin/java: error while loading
shared libraries: libpthread.so.0: wrong ELF class: ELFCLASS64


# The solution from here:
#
# http://www.ces.clemson.edu/linux/maple.shtml
# http://www.mapleprimes.com/forum/maple-10-network-and-fedora-5
# http://www.mapleprimes.com/forum/cant-run-or-install-maple-10-on-linux-fedora-core-5
#
# is to copy the entire CD to a local directory

mkdir ~/MAPLE10; cp -r /media/MAPLE10/* ~/MAPLE10/.

# then edit the binary installer changing the first
# "export LD_ASSUME_KERNEL=..." to "#xport LD_ASSUME_KERNEL=..."
# to do this, use vi in binary mode: `vi -b`

vi -b ~/MAPLE10/network/X86_64/Disk1/InstData/VM/LinuxX86_64NetworkInstaller.bin

# once the file is edited, the installer will still give errors unless
# you run it in console mode:

cd ~/MAPLE10/network; ./installMaple -i console

# change the installation directory to /opt/maple10 and everythign will
# install.

# then go to /usr/local/bin and symbolic link maple, xmaple and mint

Mathematica

Executable /usr/local/bin/mathematica
/usr/local/bin/math
/usr/local/bin/Mathematica
/usr/local/bin/mathematica_mcc
/usr/local/bin/MathKernel
Usage Examples %> mathematica &
%> mathematica myNotebook.nb
Installed Location /opt/Wolfram/Mathematica/5.2/
/opt/Wolfram/Mathematica/5.2/Documentation/
Installation Commands (as root/sudo) mount the cd drive and execute the MathInstaller? file (search sub-directories). When installation is finished execute /usr/local/bin/mathematica as root and specify the license manager to complete installation.
Installation Issues none.

Matlab

Executable /usr/local/bin/matlab
/usr/local/bin/matlab_mcc
/usr/local/bin/mbuild
Usage Examples %> matlab -help
%> matlab -nosplash -nodesktop -r "command_to_run_in_your_terminal"
%> matlab_mcc -help
%> mbuild -help
Installed Location /usr/local/bin
/opt/matlab
/opt/matlab/demos
/opt/matlab/help
Installation Commands (as root/sudo on individual machines)
1) %> mkdir -p /opt/matlab
2) %> sh /media/MathWorks_2006a1/install
# --> The directory /media/MathWorks... should be the location your system mounts the Matlab CDROM. Many times this is /mnt/cdrom on older systems.
3) Follow the GUI to install locally double checking that you have changed the installation path to /opt/matlab.
4) %> sh /opt/matlab/install_matlab
Installation Issues --> While installing, I clicked agree for the license and the following error appeared:
[ TMW_Archive license checkout failed.
User/host not on INCLUDE list for feature.
Feature: TMW_Archive
License path: /opt/matlab/etc/license.dat
FLEXnet Licensing error:-39,147
For further information, refer to the FLEXnet Licensing End User Guide,
available at "www.macrovision.com". ]
SOLUTION: The University's central license server did not have our machines in the database. We had them add us and everything installed fine from then on.
--> Matlab and Mathematica are both linked to the same directory (/usr/local/bin). Unfortunately they both provide an mcc compiler so we were forced to manually relink (symbolic link) the matlab mcc to matlab_mcc and the mathematic mcc to mathematica_mcc. The regular mcc link also points to matlab_mcc

NVPerfKit? (spock.scs.fsu.edu ONLY)

Executable none (this is a development library)
Usage Examples 1) set these three environment variables through setenv or export: __GL_EXPERT_REPORT_MASK, __GL_EXPERT_DETAIL_LEVEL, __GL_EXPERT_OUTPUT_MASK. I recommend using the values ALL, 30 and LOG_TO_CONSOLE:LOG_TO_DEBUGGER respectively (see /opt/NVPerfKit/Docs/* for details)
2) run gDEBugger (discussed above).
Installed Location /opt/NVPerfKit
Installation Commands (as root/sudo)
1) %> cd /opt && tar xvfz ~NVPerfkit*.tar.gz
2) %> ln -s NVPer* NVPerfKit?
3) %> init 3 && sh /opt/NVPerfKit/Driver/NV*.run
--> this will prompt you for instructions as it installs the necessary NVidia driver (NVPerfKit? will not work without this specific driver).
4) %> vi /etc/X11/xorg.conf
--> Add this line to the end of the "Device" section of your xorg.conf:
Option "PerformanceMonitorMode" "1"
5) %> init 5
--> this restarts the X-session. If this fails something went wrong...(see /opt/NVPerfKit/Docs/* for additional installation details.
Installation Issues NVPerfkit is a library you can link against that will provide debugging output while you work with OpenGL? programs on NVidia GPUs. To use it, we recommend running gDEBugger, however you can also find the SDK (includes and shared library) in /opt/NVPerfKit/NVPerfSDK if you decide to bypass the debugging GUI.

ParaView

Executable /usr/bin/paraview
Usage Examples %> paraview
Installed Location /usr/bin/paraview
/usr/lib64/paraview-2.4/
/usr/share/paraview-2.4.3
Installation Commands (as root/sudo)
%> tentakel yum -y install paraview paraview-data
Installation Issues none.

Qt4

Executable /usr/bin/qtconfig-qt4
/usr/bin/moc-qt4
/usr/bin/qtdemo-qt4
/usr/bin/assistant-qt4
Usage Examples %> qtdemo-qt4
# --> Provides many interesting examples with full source codes
Installed Location /usr/bin
/usr/lib64/qt4
/usr/share/qt4
/usr/share/doc/qt4
Installation Commands (as root/sudo)
%> tentakel yum -y install qt4 qt4-devel qt4-doc qt4-x11
Installation Issues 1) Qt3 is installed with KDE by default. Qt4 must be installed in parallel (i.e. it cannot override Qt3) or the system will break. This also implies users must be careful that they are linking with Qt4 when they build their applications and not Qt3 or they will possibly face compilation issues and performance hits.
2) The qtdemo-qt4 is a great application that demonstrates the potential of qt4. I recommend looking there as well for examples and source code to get your projects started

SciPy?

Executable  
Usage Examples %>
Installed Location  
Installation Commands (as root/sudo)
%> tentakel yum -y install numpy lapack-devel blas-devel
%
Installation Issues numpy, lapack and blas installed fine to /usr/lib64. Unfortunately, something in the scipy dist and/or numpy installation does not detect that we are running x86_64 systems. This prevents the scipy source from installing correctly. Troubleshooting now...

VisIt

Executable /apps/opt/visit/bin/visit
/apps/opt/visit/bin/visitconvert
Usage Examples %> visit
%> visitconvert /apps/opt/visit/data/curv3d.silo curv3d VTK
Installed Location /apps/opt/visit/bin
/apps/opt/visit/data
/apps/opt/visit/1.5.3/linux-x86_64/help
Installation Commands %> wget ftp://ftp.llnl.gov/pub/visit/visit1.5.3/visit1_5_3.linux-x86_64.tar.gz;
%> tar xvfz visit1_5_3.linux-x86_64.tar.gz;
%> mkdir -p /apps/opt;
%> mv visit /apps/opt/.;
Installation Issues Need to add to /apps/profile.d/apps.(c)sh. Copy and paste the following:
For apps.sh #add these lines to /apps/profile.d/apps.sh
VISIT_BIN=/apps/opt/visit/bin;
export PATH=$PATH:VISIT_BIN;
For apps.sh #add these lines to /apps/profile.d/apps.csh
set VISIT_BIN="/apps/opt/visit/bin"
setenv PATH "${PATH}:${VISIT_BIN}"

VMD

Executable /usr/local/bin/vmd
Usage Examples %> vmd
Installed Location /usr/local/bin/vmd
/usr/local/lib/vmd
Installation Commands --> download VMD tarball here: http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD
%> tar xvfz vmd*.tar.gz;
%> %> cd vmd
--> edit configure to set install_bin_dir and install_library_dir to desired install locatinos
%> ./configure
%> cd src
%> sudo make install
--> edit $install_bin_dir/vmd (i.e. /usr/local/bin/vmd) to add "-f" after the first "#!/bin/csh"
Installation Issues When VMD installs, some machines will not interpret the executable shell script correctly since it has no "-f". Adding the flag as outlined above solves this problem.
Also, when VMD is loaded, the application will max out a processor and slow the machine.

VTK

Executable /usr/bin/vtk
Usage Examples %> vtk /usr/share/doc/vtk-examples-5.0.2/Examples/VolumeRendering/Tcl/IntermixedUnstructuredGrid.tcl
Installed Location /usr/bin/
/usr/share/doc/vtk-examples-5.0.2
/usr/include/vtk*
/usr/lib64/vtk-5.0
/usr/share/doc/vtk-5.0.2
Installation Commands (as root/sudo) %> tentakel yum -y --enable-repo=atrpms install vtk*
Installation Issues This was originally installed on /apps/, but to provide additional packages such as vtk-python we were forced to install it on individual machines (installation to /apps/ fails with yum). Also dependencies for vtk* failed to install to /apps/ (tk in particular failed).

Wink

Executable /apps/usr/bin/wink
Usage Examples %> wink &
Installed Location /apps/opt/wink
/apps/opt/wink/Docs
/apps/opt/wink/Samples
Installation Commands (as root/sudo)
%> wget http://yet.another.linux-nerd.com/wink/download/wink15.tar.gz
%> tar xvfz wink15.tar.gz
# --> Produces two files: installdata.tar.gz and installer.sh
%> vi installer.sh
# --> Add "x86_64;;" below line 13 ("i?86;;") to enable install on x86_64 machines
%> ./installer.sh
# --> Change installation destination to /apps/opt/wink
%> cd /app/usr/bin ; ln -s /apps/opt/wink/wink
Installation Issues Wink does not install on x86_64 machines by default. The installer checks that the machine is x86 only and then installs a precompiled 32-bit set of binaries. To override the check for x86 and force the 32-bit version to install on the x86_64 machine, you must add the "x86_64;;" line as stated in the Installation Commands above.

xCHM

Executable /usr/bin/xchm
Usage Examples %> xchm
%> xchm -h
%> xchm <chm input file>
Installed Location /usr/local/bin/amira
/opt/Mercury/Amira4.1
/opt/Mercury/Amira4.1/doc/amiraUsersGuide.pdf
Installation Commands 1) (as root/sudo on individual machines) %> yum -y install xchm
Installation Issues No issues. Please note that this also installs chmlib as a dependency.

Extra Installation Notes

Disable the Shutdown and Suspend Buttons so Only Root Can Shutdown

Objective We want to limit users' control over our machines so they do not shutdown the system while other processes or users are running in the background. By disabling the buttons to shutdown, suspend and reboot regular users may only login and logout. Root, however, still sees the buttons and has access to reboot the machine. NOTE: the reboot command is not affected by this so users in dire need of a restart can still execute this command from the console.
Steps 1) edit /etc/gdm/custom.conf
---> under "[greeter]" put "SystemMenu=false"
2) edit /etc/X11/xdm/kdmrc
---> change all occurrences of "AllowShutdown=" to "Root"
3) %> sudo gdmflexiserver --command="UPDATE_CONFIG greeter/SystemMenu"
4) reboot the machine to BIOS Setup
---> Change "Power/OS Power Management/ACPI S3 Support" to "Disable"
---> Save and Exit BIOS Setup
5) Boot and visually verify that there is no more "Shutdown", "Reboot" or "Suspend" on either the login window or under the System menu when a user is logged in. NOTE: This also removes any Panel Applets that may have been added to the user's desktop panels.

Modify an Init Script's Runlevel

Objective We want daemons like gmond (Ganglia) and condor_master (Condor) to run when a machine reboots. To make this happen, we must set the runlevel for the init script in /etc/init.d/ to be "on" for runlevels 3, 4 and 5 (standard levels where machine is fully booted).
Steps We use the /sbin/chkconfig utility. First we run:
%> /sbin/chkconfig --list [initScriptName]
to determine if the script is already registered and to find out what runlevels it has been assigned. NOTE: [initScriptName] refers to the init script in /etc/init.d/ without the full path (i.e. gmond instead of /etc/init.d/gmond). In the case where the script is not registered, we run:
%> /sbin/chkconfig --add [initScriptName]
and if there are no errors it has been registered for runlevel 3 ONLY. To add runlevels 4 and 5, we run:
%> /sbin/chkconfig --levels 345 [initScriptName] on
and the script is now configured to run at boot and stay on when users login to the console. Verify this by running the first command (--list) again.

Creating A New InstallRoot For Yum

Objective We want to install Yum RPMs and other third party software into a common NFS directory for all the machines in the VisLab. For third party software this is easy: we just change the destination of binaries as we manually install them. However, Yum is a little more complicated and requires us to do two things: 1) create an rpm database for yum to write to; 2) run the 'yum' commands with an added '--installroot /apps/' (NFS directory is /apps/ on the parent node).
Steps 1) %> mkdir -p /apps/var/lib/rpm
%> cp -a /var/lib/rpm/* /apps/var/lib/rpm/.
2) %> yum --installroot /apps/ install XXX
#---> (where XXX is any software title available to yum)

Adding Binaries from a New InstallRoot to A User's PATH

Problem We have installed software to a new installroot (i.e. /apps/) which is a common NFS directory on all machines in the Vislab. Now we need to add the binaries and libraries to every user's environment. This will include adding to the PATH and LD_LIBRARY_PATH. Also, these environment variables must be auto-updated everytime the user logs in to ensure software continues to run.
Solution We can use Linux's built in ability to update environments at login through scripts in /etc/profile.d. Whenever users log in, their shells (tcsh, csh, sh, bash, etc) initially source /etc/ to get global variables. On most Linux systems today these parent shell configurations redirect the user's shell to /etc/profile.d where it is instructed to source all files ending in *.csh (if its a csh based shell like tcsh) or *.sh (if its a sh based shell like bash). Therefore, by adding our own apps.csh and apps.sh files to /etc/profile.d we can easily control user environment variables.
The first step is to create the shell scripts somewhere on our NFS directory (i.e. /apps/) so all machines have the same environments. The second step is to symbolic link the shell scripts to the /etc/profile.d directory on individual machines. Finally we must verify all user shell scripts contain the correct commands to source the files on login.
Steps 1. (as root/sudo on scotty)
%> mkdir -p /apps/profile.d
%> vi apps.csh
%> vi apps.sh
# ---> (copy and paste the shell scripts provided below)
2. (as root/sudo on each VisLab machine)
%> cd /etc/profile.d ; ln -s /apps/profile.d/apps.* .
3. verify users' .bashrc contains the code in the row "For bash Users" below; (t)csh users should not need additional configuration as they source /etc/csh.cshrc by default.
csh Script # add lines to /apps/profile.d/apps.csh:
set APPS_PATH="/apps/bin:/apps/usr/bin"
setenv PATH "${PATH}:${APPS_PATH}"
if ( $?LD_LIBRARY_PATH ) then
setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/apps/usr/lib64"
else
setenv LD_LIBRARY_PATH "/apps/usr/lib64"
endif
sh Script #add lines to /apps/profile.d/apps.sh:
APPS_PATH=/apps/bin:/apps/usr/bin
export PATH=$PATH:$APPS_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/apps/usr/lib64
For bash Users # This should go at the top of the .bashrc file
# Source global definitions
# if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

Removing Difficult RPMs from InstallRoot when Yum Fails

Problem For some RPMs yum is unable to install or remove when we change the installroot. Typically yum cites errors such as: "error: %preun(gnuplot-4.0.0-11.x86_64) scriptlet failed, exit status 255". When this happens, yum actually adds the software to its database as though its installed eventhough nothing worked correctly. Unfortunately this means removing the RPM is impossible with Yum since it will fail the removal process when it sees there is a discrepency between what is actually installed and what it thinks is installed.
Solution We can use the "rpm" command to forcefully remove the RPM from Yum's database.
Commands (as root/sudo) %> rpm --root /apps/ -e --noscripts --notriggers XXX
# ---> Where XXX is the RPM name (i.e. gnuplot).

Adding 3rd Party Repos to Our Yum Installation

Objective We want to add additional yum repositories to our yum installation for a wider array of software titles that can be installed without manual configuration. This can be done easily by following the instructions found at http://fedorafaq.org/.
Steps 1) (as root/sudo)
%> tentakel rpm -Uvh http://www.fedorafaq.org/yum http://rpm.livna.org/livna-release-5.rpm

Adding Video Plugins

Objective Video plugins allow us to view streaming quicktime or real media in a web browser
Steps # Get a video plugin for firefox and videolan client (universal player)
(as root/sudo) %> tentakel yum -y install mplayer-plugin vlc
#install flash player
%> yum install flash-plugin
%> mkdir -p /usr/X11R6/lib/X11/fs/
%> ln -s /etc/X11/fs/config /usr/X11R6/lib/X11/fs/config
# support for wmv and realmedia (requires 3rd party repos from "Adding 3rd Party Repos to Out Yum Installation" above)
%> yum --enablerepo=atrpms install w32codec

Adding DVD Playing Capabilities

Objective Linux is unable to play DVD's by default so we have to force it to handle this
Steps (as root/sudo)
tentakel echo -e "remove totem\n install totem-xine libdvdcss libdvdnav\n run\n quit" | yum -y shell

Adding Adobe Acrobat Reader Plugin

Objective We would like PDFs to open inside web browsers with the Adobe Acrobat Reader plugin
Steps See here: http://www.fedorafaq.org/#pdf

Installing Yum for RHEL4

Problem RHEL4 is a very limited system and does not play well with new software. Unfortunately there is no instant way to get a system like Yum installed which will allow you to expand your system's software. So what do you do if you are locked into RHEL4 and need yum?
Solution I came up with this list of steps while installing Yum on Kirk. Unfortunately its not easy and it requires a lot of searching online to find the correct versions of all the software. (By the way Kirk was recently converted to Fedora Core 5 after we got fed up with installation issues like this in RHEL4. That makes this section relevant only for as a warning for anyone who ever wants to brave RHEL4).
Steps 1) (as root/sudo) %> mkdir -p /usr/local/src/yum; cd /usr/local/src/yum
2) Find and download these rpms with wget to /usr/local/src/yum:
centos-yumconf-4-4.5.noarch.rpm
python-sqlite-1.1.7-1.2.i386.rpm
sqlite-3.3.3-1.2.i386.rpm
python-elementtree-1.2.6-4.2.1.i386.rpm
python-urlgrabber-2.9.8-2.noarch.rpm
yum-2.4.3-1.c4.noarch.rpm
http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.4-1.el4.rf.x86_64.rpm
3) %> rpm -Uvh "*.rpm"
4) %> rm /etc/yum.repos.d/"Cent*"
5) cd /etc/yum.repos.d/
6) wget http://soundlinuxtraining.com/portal/file.php/1/misc/dries.repo
7) wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
8) Modify "*.repo" to replace $release with 4 (reads: "CentOS.Karan.Org-EL$release - Stable" but should read: "CentOS.Karan.Org-EL4 - Stable")
9) rpm --import http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
10) %> yum list
# ---> this should verify that everything is working (you should get a full list of available software)
Comments Errors are a result of not modifying files correctly (i.e. CentOS4 versions appearing instead of RHEL4).

Synchronize Two Machines with Yum

Problem When a drive fails and we are forced to re-image based on a backup, sometimes we dont always have the newest software installed. Ideally we want all machine in the VisLab to have exactly the same packages installed.
Solution We can use a combination of perl script and yum to synchronize two machines.
Steps 1) Get a list of packages on machine 1 (ideally the machine with everything installed):
%> yum list installed > installed.machine1
2) Remove the top two lines of "installed.machine1"
3) as root/sudo from the head node run the perl script:
%> tentakel "./synchronizeMachines.pl | yum -y shell "
Script 'synchronizeMachines.pl' #!/usr/bin/perl

open(SYNCFILE,"./installed.machine1");
$\ = $/;

$installString = " install ";
while (<SYNCFILE>) {
chop;
@F = split;

$installString = join " ", $installString, $F[0];
}

$installString = join "\n", $installString, " run";
$installString = join "\n", $installString, " quit";

print $installString;
Comments Anything that is 3rd party and unavailable from a Yum repository will come up with an error message like: "No Match for argument: Amira_4.1.x86_64". This list of packages will have to be manually installed by hand.
Also, if one machine does not have everything installed on it (i.e. they are all unique), repeat the process for a different machine in step 1) until each machine has distributed its install list.
Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r20 < r19 < r18 < r17 < r16 | More topic actions
 
SCS TWiki

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback